我有一个使用Master-Detail UI模式的简单WPF程序,其中Detail在Master Pane 中显示了集合的当前选定项。我使用的是MVVM,每个XAML页面都由一个ViewModel对象(它设置为DataContext)来支持。

现在,我想在“主” Pane 中添加一个“删除”按钮以从主项目列表中删除。但是,我不知道如何将当前所选项目的viewmodel对象作为CommandParameter按钮传递给路由的命令处理程序代码。

在此先感谢您提供任何指导。

麦克风

最佳答案

与Paul所显示的类似,您的 View 模型将在其中知道当前选择了哪个项目。 IE。

public class MyVM
{
 public ObservableCollection<MyObject> MyCollection { get; set; }
 public MyObject CurrentItem { get; set; }
}

然后,您的XAML可以很简单
CommandParameter="{Binding Path=CurrentItem}"

只要您的主 Pane 在选择它时设置CurrentItem属性,您的命令就可以简单地将CurrentItem设置为命令参数。

关于wpf - 如何在按钮的CommandParam中传递特定的viewmodel对象?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/528253/

10-12 16:57