【发布时间】:2025-12-30 12:20:08
【问题描述】:
希望这是一个简单的 MVVM 问题,但我正在尝试掌握命令参数。
我让用户从 ListBox 中选择一个项目,然后单击“删除选定项”。 ListBox 将 SelectedItem 绑定到“SelectedTemplate”。我的按钮 XAML 如下所示:
<Button CommandParameter="{Binding SelectedTemplate}" Command="{Binding DeleteTemplateCommand}" Content="Delete Selected"/>
当我得到执行命令时,我正在从命令中读取参数。但是,我也可以访问“SelectedTemplate”。如果我使用传递的参数,那么我必须在删除对象之前将其转换为正确的对象类型,而不是继续删除“selectedTemplate”
public void DeleteTemplate(object template)
{
Convert.ChangeType(template, typeof(Template));
if (template == SelectedTemplate )
{
_ESTContext.Templates.Remove(SelectedTemplate);
}
}
我的问题是,在我看来,它似乎都满足 MVVM 理念,使用其中一种是否有好处/坏处?
【问题讨论】:
标签: c# wpf mvvm relaycommand