【发布时间】:2014-03-03 22:58:40
【问题描述】:
我有一个 ComboBox,其中包含我的应用程序中定义的每个 FilterViewModel 的项目。每个 FilterViewModel 都有一个 DisplayName 属性,其中包含过滤器的名称。当前选择的过滤器实例保存在 SelectedFilter 属性中。
我希望用户能够从下拉列表中选择现有项目,同时在文本框中更改所选过滤器的名称。输入其他名称不得更改项目选择。总是选择一个过滤器,永远不可能没有选择过滤器。
这是 XAML 代码:
<ComboBox
IsEditable="True" IsTextSearchEnabled="False"
ItemsSource="{Binding Filters}"
SelectedItem="{Binding SelectedFilter}"
DisplayMemberPath="DisplayName"/>
我找不到 ComboBox 的 TextChanged 事件,简单地让它保持原样不会更改所选项目的绑定文本属性 DisplayName(我早就料到了)。
我可以怎样做才能让它按上述方式工作?
背景是这个 ComboBox 在我的应用程序的设置对话框中使用,可以管理(创建、复制、重命名、删除)过滤器,并且可以编辑它们的过滤条件。我想为我节省额外的按钮和窗口或文本框来重命名过滤器,但直接就地提供该功能。您会看到过滤器名称,只需单击它并键入即可更改它。但我也想使用 ComboBox 有一个下拉选择菜单来切换过滤器。
【问题讨论】: