这是一项简单的任务,但我还没有找到解决方案。
我有一个Objets列表,每个Objets包含2个属性,一个String和一个byte []。我将列表设置为我的Datatgid的itemscource。我创建了一个带有绑定到string属性的textcolumn。现在我想添加一个Checkboxcolumn,如果byte []属性为NULL则不应该检查,否则应该检查。
到目前为止,我没有找到这方面的例子,我猜这可能与数据触发器有关,但我甚至无法在没有编译器抱怨的情况下写下来。
答案 0 :(得分:1)
您可以使用数据绑定引擎并将属性直接绑定到复选框。当然,该复选框需要Nullable<bool>
,因此您必须使用IValueConverter
将byte[]
数组转换为bool?
:
[ValueConversion(typeof(object), typeof(bool?)]
public class IsNullConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return value == null;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotSupportedException();
}
}
<CheckBox IsChecked="{Binding Path=MyByteArray,
Converter={StaticResource MyConverter},
Mode=OneWay}"
IsEnabled="False" />
注意,我将绑定模式标记为OneWay,并将复选框标记为已禁用(即只读),因为在场景中,允许用户更改复选框的状态是没有意义的。