我有一个 ListBox 控件的情况。在项目模板内有一个按钮。当我单击按钮时,我想将所述 ListBox 的所选项目更改为按钮所在的项目。目前,我可以通过单击项目模板中的其他位置来更改所选项目,但如果我选择则不起作用按钮。为了向评论者澄清最后一句话,如果在不是按钮的项目模板中单击,则 SelectedItem 将按预期更改。如果您单击项目模板中的按钮,则 SelectedItem 不会更改。
更多信息:我正在使用 MVVM,并且按钮在 View 模型中附加了一个命令。任何解决方案都需要允许它继续工作。
ListBox 链接到 ItemSource,ListBox 的 SelectedItem 绑定(bind)到 View 模型中的属性。
如果有固定的方法可以做到这一点,我到目前为止还找不到。
我正在使用 C# 和 Visual Studio 2010。
谢谢。
最佳答案
如果您可以使用 ToggleButton
并将 IsChecked
绑定(bind)到 ListBoxItem
IsSelected
属性,那么就可以了.
您的 ListBoxItem
未被选中的原因是 Button 正在处理 MouseDown
事件,从而使 ListBoxItem
不知道点击。在您的按钮中为 Click
创建一个事件处理程序并设置 e.Handled = false;
。
关于c# - ListBox ItemTemplate 中的按钮未选择项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45462069/