依存関係プロパティを介してにバインドされたListBoxがありObservableCollection<object>
ます。を使用してDataTemplateSelector
、クラスタイプに基づいて、ObservableCollectionで見つかったオブジェクトのタイプを判別し、適切なDataTemplateを適用します。任意のクラスタイプの複数のオブジェクトが可能です。
私のモデルクラスの一部は以下のとおりです。関心のあるポイントのみを表示するように編集されています。
public class IPUpdater
{
public IPUpdater()
{
}
public string IPTransceiverInstall { get; set; }
public string IPTransceiverFinal { get; set; }
public Boolean IsFinal { get; set; }
public string IPTransceiver
{
get
{
return IPTransceiverAddress();
}
}
private string IPTransceiverAddress()
{
if (!IsFinal)
return IPTransceiverInstall;
else
return IPTransceiverFinal;
}
}
IPTransceiver
適切なIPUpdaterテンプレートが使用されると、XAMLDataTemplate内のTextBoxにバインドされます。IsFinal
同じテンプレート内のチェックボックスにバインドされています。
質問:変更されたテキストボックスを強制的に登録するにはどうすればよいIPTransceiver
ですか?DependencyPropertyをIPTransceiverと等しく設定しようと考えましたが、リストボックスにクラスのインスタンスが複数ある場合、最初にその値を設定する方法がわかりませんでした。
TwoWay
およびOneWayToSource
バインディングモードは、読み取り専用プロパティでは使用できません。IsFinal
CheckBoxの値が変更されたときに更新されることを確認できます。更新IPTransceiverAddress()
時に強制的にトリガーしようとさえしました。IsFinal
上記のいずれも、TextBoxを更新していません。ボックスを更新することができた唯一の方法は、SQLiteクエリを繰り返すことです。これは避けたいと思います。
ありがとう!