繁体   English   中英

更改组合框文本,但未选择项目

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM