在后面的代码中将属性绑定到RadGridView中的colomn

时间:2017-02-14 12:11:28

标签: c# wpf binding radgridview

我有一个自定义类列表,我已通过以下代码将它们绑定到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);

2 个答案:

答案 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