저는 WPF를 처음 사용합니다. 내 응용 프로그램에서 다른 열 및 TextBox를 기반으로 datagrid 열을 calcualte 위해 노력하고있어. 그것은 두 개를 곱해야하고 결과를 주어야합니다. 같은 경우 IMultiValueConverter를 사용하고 있습니다. DataGrid에 다음과 같이 바인딩이 있습니다.Convert 함수에는 항상 하나의 값이 있습니다. DependencyProperty.UnsetValue - WPF
<DataGrid.Columns>
<DataGridTemplateColumn Header="TranD">
<DataGridTemplateColumn.CellTemplate >
<DataTemplate>
<TextBox Text="{Binding Path=TranD, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, TargetNullValue=0}" Name="dgtbTranD"
/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
<DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<TextBox Text="{Binding Path=TranD, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, TargetNullValue=0}"/>
</DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Header="Tran Credit" Width="*">
<DataGridTemplateColumn.CellTemplate >
<DataTemplate>
<TextBox Text="{Binding Path=TranC, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, TargetNullValue=0}" Name="dgctbTranC"
/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
<DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<TextBox Text="{Binding Path=TranC, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, TargetNullValue=0}" />
</DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Header="Func Debit" Width="*">
<DataGridTemplateColumn.CellTemplate >
<DataTemplate>
<TextBlock Name="dgtbFuncD" IsEnabled="False" >
<TextBlock.Text>
<MultiBinding Converter="{StaticResource Multiplication}">
<Binding Path="TranD" TargetNullValue="0" />
<Binding ElementName="txtExchRate" Path="Text"/>
</MultiBinding>
</TextBlock.Text>
</TextBlock>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Header="Func Credit" Width="*">
<DataGridTemplateColumn.CellTemplate >
<DataTemplate>
<TextBlock Name="dgctbFuncC" IsEnabled="False">
<TextBlock.Text>
<MultiBinding Converter="{StaticResource Multiplication}">
<Binding Path="TranC" />
<Binding ElementName="txtExchRate" Path="Text" />
</MultiBinding>
</TextBlock.Text>
</TextBlock>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
문제는 제 요소 바인딩입니다. 요소 이름은 절대적으로 정확하지만 구현 된 클래스에서는 항상 DependencyProperty.UnsetValue 값을 사용합니다. 문제가 무엇입니까 ??? 어떤 생각. 다음과 같이
컨버터 기능은 다음과 같습니다
public object Convert(object[] values, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
try
{
if (values[0] == null || values[1] == null)
{
return 0;
}
else
{
return (System.Convert.ToInt32(values[0]) + System.Convert.ToInt32(values[1])).ToString();
}
}
catch (Exception ex)
{
return 0;
}
}
특정 구성에 대한 정보를 더 게시하면 대안을 제안 할 수 있습니다. 이름 범위는 작업하기가 까다로울 수 있습니다. –
예를 들어 TextBox가 다른 XAML 파일에 있습니까? 이 TextBox는 응용 프로그램/XAML에 있습니까? –
텍스트 상자는 Grid 외부의 동일한 XAML 파일에 있습니다. – Jankhana