Silverlight 一个值在数据网格中显示两列
我有一个包含3个值的XML,它们是“名称”、“部门”、“值”。我想显示一个包含四列的数据网格,如名称、部门、贷方和借方。当“值”列中的值为正值时,我希望在借方列中输入值,在贷方列中输入0,反之亦然。有几种方法可以解决此问题。最干净的方法可能是为credit和debit添加一个DataGridTemplateColumn,将两个列绑定到“Value”,然后通过使用绑定到“Value”和转换器切换用于解析值的元素(例如TextBlock)的可见性属性。 例如: 借方的转换器几乎相同,只是“值>=0部分”当然更改为“值<0” 干杯,亚历克斯Silverlight 一个值在数据网格中显示两列,silverlight,Silverlight,我有一个包含3个值的XML,它们是“名称”、“部门”、“值”。我想显示一个包含四列的数据网格,如名称、部门、贷方和借方。当“值”列中的值为正值时,我希望在借方列中输入值,在贷方列中输入0,反之亦然。有几种方法可以解决此问题。最干净的方法可能是为credit和debit添加一个DataGridTemplateColumn,将两个列绑定到“Value”,然后通过使用绑定到“Value”和转换器切换用于解析值的元素(例如TextBlock)的可见性属性。 例如: 借方的转换器几乎相同,只是“值>=0部
<DataGrid
AutoGenerateColumns="False">
<DataGrid.Resources>
<converters:ValueToVisibilityConverter
x:Key="ValueToVisibilityConverter" />
</DataGrid.Resources>
<DataGrid.Columns>
<DataGridTemplateColumn
Header="Credit">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock
Text="{Binding Path=Value}"
Visibility="{Binding Path=Value, Converter={StaticResource CreditToVisibilityConverter}}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn
Header="Debit">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock
Text="{Binding Path=Value}"
Visibility="{Binding Path=Value, Converter={StaticResource DebitToVisibilityConverter}}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
public class CreditToVisibilityConverter : IValueConverter
{
#region IValueConverter Members
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return (double)value >= 0 ? Visibility.Visible : Visibility.Collapsed;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
#endregion
}