c# - ListBox ItemTemplate 中的按钮未选择项目

标签 c# wpf mvvm listbox selecteditem

我有一个 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/

相关文章:

c# - C#中动态创建数组的方法

c# - 无论如何通过 XAML 事件监听器传递 WPF 控件以在后面的代码中使用?

javascript - ExtJS 5 : Set child View Model data from bound value

WPF mvvm通过命令发送TreeViewItem的绑定(bind)元素

wpf - TextBlock 文本的整数值 0 上的 DataTrigger 不起作用

model-view-controller - MVP 模式 : should multiple Presenters be decoupled or can they communicate directly?

c# - 列表的性能问题

c# - MemorySharp 设置偏移地址不起作用

c# - 打开文件对话框,多个 Excel 扩展的一个过滤器?

c# - 如何在WPF DataGrid中选择DataGrid header 中的列的所有复选框