我有一个自定义类列表,我已通过以下代码将它们绑定到RadGridView
:
this.ItemsSource = CorrelationCalibraationGridInput.ListOfCalibratableCorrelationClasses;
然后我手动创建了列。对于其中一个复选框列的列,我需要启用禁用复选框绑定到类的属性,并根据类的另一个属性设置其检查状态。
我使用下面的代码但是enablity没有绑定到IsNotCalibratedYet
属性。你能解释一下为什么以及如何解决它?(请注意,检查状态被正确地绑定到类的IsCalibratedUSed
属性)。
GridViewDataColumn IsCalibratedUSedColumn = new GridViewDataColumn()
{
UniqueName = "IsCalibratedUSedColumn",
Header = "Use calibrated",
DataMemberBinding = new Binding("IsCalibratedUSed"),
IsFilterable = false,
};
Binding enablityBinding = new Binding("IsNotCalibratedYet");
enablityBinding.Mode= BindingMode.OneWay;
enablityBinding.UpdateSourceTrigger= UpdateSourceTrigger.PropertyChanged;
BindingOperations.SetBinding(IsCalibratedUSedColumn, GridViewDataColumn.IsEnabledProperty,enablityBinding );
this.Columns.Add(IsCalibratedUSedColumn);
答案 0 :(得分:0)
您可以使用以下设置执行此操作:
public MainWindow()
{
InitializeComponent();
lv.ItemsSource = new Item[3] { new Item() { IsNotCalibratedYet=true }, new Item() { IsNotCalibratedYet = false }, new Item() { IsNotCalibratedYet = true } };
gv.Columns.Add(new GridViewColumn()
{
DisplayMemberBinding = new Binding("IsNotCalibratedYet"),
});
}
其中:
public class Item
{
public bool IsNotCalibratedYet { get; set; }
}
和Xaml是
<ListView Name="lv" >
<ListView.View>
<GridView x:Name="gv" AllowsColumnReorder="true"
ColumnHeaderToolTip="Employee Information">
</GridView>
</ListView.View>
</ListView>
答案 1 :(得分:0)
您应该将IsReadOnlyBinding
的{{1}}属性设置为GridViewDataColumn
:
Binding
根据您的source属性是否返回true / false,您可能希望使用GridViewDataColumn IsCalibratedUSedColumn = new GridViewDataColumn()
{
UniqueName = "IsCalibratedUSedColumn",
Header = "Use calibrated",
DataMemberBinding = new Binding("IsCalibratedUSed"),
IsFilterable = false,
};
Binding enablityBinding = new Binding("IsNotCalibratedYet");
enablityBinding.Mode = BindingMode.OneWay;
enablityBinding.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged;
IsCalibratedUSedColumn.IsReadOnlyBinding = enablityBinding;
this.Columns.Add(IsCalibratedUSedColumn);
:
InvertedBooleanConverter