Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将属性绑定到代码隐藏中RadGridView中的列_C#_Wpf_Binding_Radgridview - Fatal编程技术网

C# 将属性绑定到代码隐藏中RadGridView中的列

C# 将属性绑定到代码隐藏中RadGridView中的列,c#,wpf,binding,radgridview,C#,Wpf,Binding,Radgridview,我有一个自定义类列表,通过以下代码将它们绑定到RadGridView: this.ItemsSource = CorrelationCalibraationGridInput.ListOfCalibratableCorrelationClasses; 然后我手动创建了这些列。对于作为复选框列的其中一列,我需要启用或禁用绑定到类的属性的复选框,并基于类的另一个属性设置其检查状态。 我使用了下面的代码,但启用功能未绑定到isnotcaliberedYet属性。您能解释为什么以及如何解决它吗?(请注

我有一个自定义类列表,通过以下代码将它们绑定到
RadGridView

this.ItemsSource = CorrelationCalibraationGridInput.ListOfCalibratableCorrelationClasses;
然后我手动创建了这些列。对于作为复选框列的其中一列,我需要启用或禁用绑定到类的属性的复选框,并基于类的另一个属性设置其检查状态。 我使用了下面的代码,但启用功能未绑定到
isnotcaliberedYet
属性。您能解释为什么以及如何解决它吗?(请注意,检查状态已正确绑定到类的
IsCalibratedUSed
属性)


可以使用以下设置执行此操作:

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>

您应该将
GridViewDataColumn
IsReadOnlyBinding
属性设置为您的
绑定

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);
根据源属性是否返回true/false,您可能需要使用
InvertedBooleanConverter

Binding enablityBinding = new Binding("IsNotCalibratedYet");
enablityBinding.Mode = BindingMode.OneWay;
enablityBinding.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged;
enablityBinding.Converter = new InvertedBooleanConverter();

哪里是
尚未校准的
定义?请不要忘记投票选出有用的答案:):
Binding enablityBinding = new Binding("IsNotCalibratedYet");
enablityBinding.Mode = BindingMode.OneWay;
enablityBinding.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged;
enablityBinding.Converter = new InvertedBooleanConverter();