[英]Change ComboBox text but not selected item
我有一个ComboBox,其中包含在我的应用程序中定义的每个FilterViewModel的项。 每个FilterViewModel都有一个DisplayName属性,其中包含过滤器的名称。 当前选定的过滤器实例保存在SelectedFilter属性中。
我希望用户能够从下拉列表中选择一个现有项目,而且还可以在文本框中更改所选过滤器的名称。 输入其他名称不得更改项目选择。 总会选择一个过滤器,永远不会选择任何过滤器。
这是XAML代码:
<ComboBox
IsEditable="True" IsTextSearchEnabled="False"
ItemsSource="{Binding Filters}"
SelectedItem="{Binding SelectedFilter}"
DisplayMemberPath="DisplayName"/>
我找不到ComboBox的TextChanged事件,仅按原样放置它并不会更改所选项目的绑定文本属性DisplayName(我希望如此)。
我该怎么做才能使其如上所述工作?
背景是在我的应用程序的设置对话框中使用了此ComboBox,可以在其中管理过滤器(创建,复制,重命名,删除),并可以编辑其过滤条件。 我想为我节省额外的按钮和窗口或文本框,以重命名过滤器,但直接就地提供该功能。 您会看到过滤器名称,只需单击它并键入即可进行更改。 但我也想使用ComboBox的下拉选择菜单来切换过滤器。
这应该允许您更改SelectedFilter
DisplayName
而不更改SelectedFilter
本身:
<ComboBox
ItemsSource="{Binding Filters}"
SelectedItem="{Binding SelectedFilter}"
DisplayMemberPath="DisplayName"
Text="{Binding SelectedFilter.DisplayName, Mode=TwoWay}"
IsEditable="True"
IsTextSearchEnabled="False"/>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.