我正在VB.Net 2010(.NET 4.0)中编写一个WPF程序,该程序对一个简单的类使用数据绑定,该类是我编写的另一个简单类的ObservableCollection。到目前为止,我有一个DataGrid显示信息,我可以根据需要添加和删除项目,但我似乎有一个相当基本的概念绊脚石:
除了各种DataGrid列允许的默认行为外,我如何以某种方式显示数据?
我的原始类中有一个名为“reverse”的布尔值,我们称之为“x”。我希望显示ObservableCollection“x”的DataGrid在Reversed列下显示“Yes”或“No”,而不是选中或取消选中的复选框(DataGridCheckBoxColumn)。
有没有一种很好的方法可以做到这一点,还是我在浪费时间?谢谢!
答案 0 :(得分:3)
[ValueConversion(typeof(bool), typeof(string))]
public class FlopBoolean : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if (bool)value return "yes";
return "no";
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return true;
}
}
答案 1 :(得分:0)
如果您拥有绑定到DataView或DataGridView的对象集合,则可以创建属性并在数据网格中显示该属性。例如:
Public Class Example
<Browsable(False)> Public Property isLinked As Boolean
<DisplayName("Linked")> Public ReadOnly Property LinkedDisplay As String
Get
If isLinked Then
Return "Yes"
Else
Return "No"
End If
End Get
End Property
End Class
它的缺点是您无法在datagridview上编辑此列。