MyClassesという名前の Collection< MyClass >を含むMyControlという名前のコントロールがあります。
<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 では正常に動作します