寻找一种使用 mvvm 显示许多功能的好方法
本文关键字:显示 多功能 方法 mvvm 一种 寻找 | 更新日期: 2023-09-27 18:32:36
我需要创建一个小型 GUI 应用程序来手动调用一些驱动程序命令。总共有大约 40 个命令,其中一些带有附加参数。
请求是,所有命令都应位于单个页面上。除此之外,没有任何要求,由于它只是一个测试环境,用户体验只是一个小问题。
当我开始以"常规"方式执行此操作并为参数添加按钮和输入元素时,我最终会得到一个非常混乱的 UI。做这样的事情也感觉很不对
劲<Button Command="{Binding DriverCommand} CommandParameter=1/>
对于所有 40 个命令
所以我的问题是,让大量具有不同参数的命令可用是一种好方法?我更喜欢 MVVM 方式,仅仅是因为我想进一步学习这种模式。在我的视图模型中有我的命令(作为枚举?(并且可以将其绑定到视图中的控件的实现将是理想的。然后,我可以使用不同的驱动程序重用 UI(这是很有可能的(。
提前致谢
你可以选择类似于以下内容的内容:
视图模型:
public class CommandDashboardViewModel
{
public ObservableCollection<DriverCommandViewModel> DriverCommands { get; set; }
}
public class DriverCommandViewModel
{
// all of these properties have to implement INPC
public string CommandText { get; set; }
public ICommand Command { get; set; }
public object CommandParameter { get; set; }
}
视图:
<!-- the DataContext of this view is instance of CommandDashboardViewModel -->
<ItemsControl ItemsSource="{Binding DriverCommands}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Button Content={Binding CommandText} Command={Binding Command} CommandParameter={Binding CommandParameter}/>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
我已经把它放在我的头顶上,所以我对任何语法错误表示歉意。