4

RibbonWindow と TabCollection を持つアプリケーションを構築しています。

すべての RibbonButton には、特定の UserControl のタブを開くコマンドがあります。すべてのコマンドは非常に小さな違いで同じことを行い、特定の UserControl でタブを開きます。その UserControl タイプを OpenTabCommand という 1 つのコマンドに渡す良い方法はありますか?

これが今の様子です:

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();
}
4

1 に答える 1