与えられた:
class StringRecord : INotifyPropertyChanged
{
public string Key { get; set; } // real INPC implementation is omitted
public string Value { get; set; } // real INPC implementation is omitted
...
}
class Container
{
public ObservableKeyedCollection<string, StringRecord> Params { get; set; }
...
{
ここObservableKeyedCollection
で見つかったものです。
TextBoxはコレクションアイテムの1つにバインドされます(DataContextは継承されます)。
<TextBox Text="{Binding Params[APN_HOST].Value}"/>
「APN_HOST」アイテムをコレクションに手動で追加すると、バインディングは期待どおりに機能します。
今、私は立ち往生しています:私はそのように空のコレクションを編集できるようにしたいです、すなわち、
指定されたキーを持つアイテムがコレクションになく、ユーザーがテキストボックスにテキストを入力すると、対応するキーを持つ新しいアイテムがコレクションに追加されます。
コレクションにある種の「見つからない場合のデフォルト」セマンティクスを実装しようとしましたが、すべてのテキストボックスが同じデフォルトインスタンスにバインドされStringRecord
、単一の値を共有する結果になりました:)
ここで本当に明白な何かを見落としているような気がします。