启用在 WPF 中编辑列表框项

本文关键字:列表 编辑 WPF 启用 | 更新日期: 2023-09-27 18:31:43

>我正在编写一个基于列表框的标记控件。

它使用以下模板显示列表框项:

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

我注意到,当我更新 TagControl 的文本时,列表框中的原始项不会更新。我使用ObservableCollection<string>作为项目源。

TagControl 实现 INotifyPropertyChanged 并调用该事件。

我做错了什么?

启用在 WPF 中编辑列表框项

我已经重现了您的问题,可以提供解决方案。 ObservableCollection<string>是使用只读的 IEnumerable 枚举的。

如果将ObservableCollection<string>替换为 ObservableCollection<DataItem> 其中

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

然后绑定到数据模板中的"名称",枚举的 DataItem 是只读的,但 Name 属性是读写的,将在编辑列表项中的文本时更新。