我是WPF的新手。在我的应用程序中,我试图根据另一列和TextBox计算datagrid列。它应该乘以两者并给出结果。对于同样的我使用IMultiValueConverter。我在DataGrid中的Bindings如下:
<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;
}
}
答案 0 :(得分:0)
ElementName
绑定源搜索当前NAME SCOPE中的source元素。这类似于其他语言的范围(如C#或VB)。范围通常使用每个唯一的XAML文件(Window
/ UserControl
)定义,但模板(ControlTemplates
和DataTemplates
)具有自己的范围。还有其他控件也定义了自己的名称范围,例如ContextMenu
。
您所指的文本框看起来与名称范围不同。