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);
}
この質問は同様のシナリオを説明していますがUserControl
、MainWindow
.
BrowserViewModel には引数を持つコンストラクターがあるため、MainWindowで aDataTemplate
を定義できないことはわかっています。Resources
フレームワークの使用を必要とする他のソリューションがあります。フレームワークの使用を避ける簡単な方法はありますか?