【发布时间】:2014-11-12 16:48:21
【问题描述】:
我正在构建一个具有 RibbonWindow 和 TabCollection 的应用程序。
每个 RibbonButton 都有一个打开特定 UserControl 选项卡的命令。每个命令都执行相同的操作,但差别很小,它们会打开一个带有特定 UserControl 的选项卡。有没有一种将 UserControl 类型传递给名为 OpenTabCommand 的命令的好方法?
这就是现在的样子:
Xaml ...
<RibbonButton Label="OpenTab1"
LargeImageSource="/something.png"
Command="{Binding OpenTab1Command}" />
<RibbonButton Label="OpenTab2"
SmallImageSource="/something.png"
Command="{Binding OpenTab2Command}"/>
...
视图模型
public RelayCommand OpenTab1Command{ get; set; }
public RelayCommand OpenTab2Command { get; set; }
public MainViewModel()
{
OpenTab1Command= new RelayCommand(OpenTab1, param => true);
OpenTab2Command = new SearchCommand(OpenTab2, param => true);
}
private void OpenTab1()
{
var item = new TabItem
{
Content = new Tab1(),
};
TabCollection.Add(item);
item.Focus();
}
private void OpenTab2()
{
var item = new TabItem
{
Content = new Tab2(),
};
TabCollection.Add(item);
item.Focus();
}
【问题讨论】:
标签: c# wpf xaml icommand commandparameter