0

リストボックスに基づいて、タグ コントロールを作成しています。

次のテンプレートを使用して ListBox 項目を表示しています。

      <Setter Property="ItemTemplate">
            <Setter.Value>
              <DataTemplate>
                <local:TagControl Text="{Binding Path=., Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Remove="RemoveItem" />
              </DataTemplate>
            </Setter.Value>
        </Setter>

TagControl のテキストを更新すると、ListBox 内の元の項目が更新されないことに気付きました。ObservableCollection<string>アイテムソースとして使用しています。

TagControl は INotifyPropertyChanged を実装し、イベントを呼び出します。

私は何を間違っていますか?

4

1 に答える 1

1

問題を再現しました。解決策を提供できます。は、ObservableCollection<string>読み取り専用の IEnumerable を使用して列挙されます。

をwhere に置き換えるObservableCollection<string>ObservableCollection<DataItem>

public class DataItem
{
    public string Name{get;set;} 
}

DataTemplate で Name にバインドすると、列挙された DataItem は読み取り専用ですが、Name プロパティは読み書き可能であり、リスト アイテムのテキストを編集すると更新されます。

于 2012-04-19T16:46:52.090 に答える