我有一个名为MyControl的控件,其中包含一个名为MyClasses的 Collection< MyClass >
<MyControl>
<MyClasses>
<MyClasss Value={Binding} />
</MyClasses>
</MyControl>
MyClass
源自DependencyObject
Public Class MyClass : DependencyObject,INotifyPropertyChanged
{
Value //propdp (DependencyProperty)
}
我有一个DataTable
. 我需要将 table[0][0] 中的数据与MyClass的 Value 属性绑定
Binding valuebinding = new Binding();
valuebinding.Path = new PropertyPath("ItemArray[0]");
valuebinding.Source = Table.Rows[0];
valuebinding.Mode = BindingMode.TwoWay;
BindingOperations.SetBinding(myValue, MyClass.ValueProperty, valuebinding);
BindingOperations.SetBinding(textBlock, TextBlock.TextProperty, valuebinding);
现在我需要动态更改数据表中存在的数据的值吗?有问题吗?解决方案是否与以下原因有关?
- DependencyObject 类覆盖并封装了 Equals() 和 GetHashCode() 方法
- DependencyObjects 未标记为可序列化
- DependencyObject 具有线程亲和性——它只能在创建它的线程上访问
注意:它在 Silverlight 中运行良好