在 ComboBox 中使用 Button 不会进行选择

Using Button in ComboBox does not make a selection

在下面,组合框的下拉列表显示了一个“年”(字符串)列表(绑定的“TrialList”的内容)以及一个添加另一年的按钮。它有效,按钮触发命令,但当发生这种情况时组合框不会折叠,这会锁定随后对绑定列表 TrialList 所做的更改。

在 MVVM 中,如何在按下按钮时强制执行“选择更改”?

<ComboBox>
    <ComboBox.ItemsSource>
        <CompositeCollection>
            <CollectionContainer Collection="{Binding Source={x:Static local:Data.TheAcademicUnit}, Mode=TwoWay, Path=TrialList}"/>
            <ComboBoxItem>
                <Button Content="Add New Year" Command="{Binding ShowNewAcademicYearPanelCommand}"/>
            </ComboBoxItem>
        </CompositeCollection>
    </ComboBox.ItemsSource>
</ComboBox>

尝试:

<Button Focusable="False" Content=...

您可以将 ComboBoxIsDropDownOpen 属性 绑定到您在 false 中设置为 false 的视图模型的源 属性 =15=] 命令方法:

<ComboBox IsDropDownOpen="{Binding IsOpen}">

查看模型:

private bool _isOpen;
public bool IsOpen
{
    get { return _isOpen; }
    set { _isOpen = value; NotifyPropertyChanged(); }
}

如果你想在调用命令时进行选择,你应该以相同的方式绑定并设置 ComboBoxSelectedItem 属性。