0

我需要创建一个小型 GUI 应用程序来手动调用一些驱动程序命令。总共有大约 40 个命令,其中一些带有附加参数。

要求是,所有命令都应该在一个页面上。除此之外,没有任何要求,因为它只是一个测试环境,所以用户体验只是一个小问题。

当我开始以“常规”方式进行操作并为参数添加按钮和输入元素时,我最终会得到一个非常混乱的 UI。做类似的事情也感觉完全错误

<Button Command="{Binding DriverCommand} CommandParameter=1/> 

对于所有 40 个命令

所以我的问题是,什么是使许多具有不同参数的命令可用的好方法?我更喜欢 MVVM 方式,只是因为我想进一步学习这种模式。我的视图模型中有我的命令(作为枚举?)并且可以将其绑定到视图中的控件的实现将是理想的。然后我可以使用不同的驱动程序重用 UI(这是很有可能的)。

提前致谢

4

1 回答 1

2

您可以使用类似于以下内容的内容:

视图模型:

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>

我已经把它放在了我的脑海中,所以我对任何语法错误表示歉意。

于 2012-04-30T09:55:24.233 回答