1

DataTemplate が定義されていない場合、コンストラクター引数を使用してビューをビューモデルにバインドするにはどうすればよいですか?

私は基本的にTreeViewコントロールをそのデータソースにバインドしようとしています。

BrowserView.xaml

<UserControl>
    <TreeView 
        x:Name="StatusTree"
            ItemContainerStyle="{StaticResource TreeViewItemStyle}"
        ItemsSource="{Binding Status, Mode=OneTime}"
        ItemTemplate="{StaticResource CheckBoxItemTemplate}"
    />
</UserControl>

BrowserViewModel.cs

public class BrowserNewViewModel : WorkspaceViewModel
{
    public BrowserNewViewModel(string name)
    {
        this.DisplayName = name;
    }

    public List<TreeViewModel> Status
    { ... }
}

以下では、ViewModel をインスタンス化する方法について説明します。Josh Smith のMVVM articleWorkspaceViewModelに従ってインターフェイスを使用しています。ここで説明します TreeViewModel

MainWindowViewModel.cs

void DisplayBrowser()
{
    BrowserViewModel browserViewModel = new BrowserViewModel("Browser");
    this.AddTab(browserViewModel);
}

この質問は同様のシナリオを説明していますがUserControlMainWindow.

BrowserViewModel には引数を持つコンストラクターがあるため、MainWindowで aDataTemplateを定義できないことはわかっています。Resources

フレームワークの使用を必要とする他のソリューションがあります。フレームワークの使用を避ける簡単な方法はありますか?

4

0 に答える 0