Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/310.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# 在自定义控件中设置控件的依赖项属性_C#_Wpf_Mvvm_Wpf Controls - Fatal编程技术网

C# 在自定义控件中设置控件的依赖项属性

C# 在自定义控件中设置控件的依赖项属性,c#,wpf,mvvm,wpf-controls,C#,Wpf,Mvvm,Wpf Controls,我在解决方案中继承了基础设施网格。现在我想在自定义控件代码中设置infragistics网格控件中定义的依赖项属性,而不是在xaml中。如何设置依赖项属性 我能够在自定义控件中设置backing CLR属性,但正如预期的那样,它没有触发gridcontrol UI更改,因此我被迫在自定义控件中设置dependency属性 具体如何实现这一点?通常使用CLR属性“wrappers”声明DependencyProperty: public static readonly DependencyProp

我在解决方案中继承了基础设施网格。现在我想在自定义控件代码中设置infragistics网格控件中定义的依赖项属性,而不是在xaml中。如何设置依赖项属性

我能够在自定义控件中设置backing CLR属性,但正如预期的那样,它没有触发gridcontrol UI更改,因此我被迫在自定义控件中设置dependency属性


具体如何实现这一点?

通常使用CLR属性“wrappers”声明
DependencyProperty

public static readonly DependencyProperty ItemsProperty = DependencyProperty.Register(
    "Items", typeof(ObservableCollection<string>), typeof(YourControlType));

public ObservableCollection<string> Items
{
    get { return (ObservableCollection<string>)GetValue(ItemsProperty); }
    set { SetValue(ItemsProperty, value); }
}
如果他们没有这样做,那么您可以在包装的属性中看到如何访问它们:

anInstanceOfYourControlType.SetValue(ItemsProperty, "some value");

当然,他们可能声明了内部属性,在这种情况下,您将无法访问它们,但您应该能够从他们的在线文档中找到它们。

您可以使用DependencyProperty设置Dependency属性的本地值

dataGridObject.SetValue(DataGrid.ItemsSourceProperty, value);
但若您的DP绑定了一些CLR属性,并且您也希望更新它,那个么使用方法

dataGridObject.SetValue(DataGrid.ItemsSourceProperty, value);
dataGridObject.SetCurrentValue(DataGrid.ItemsSourceProperty, value);