未定义 DataTemplate 时,如何使用构造函数参数将 View 绑定到 ViewModel?
我基本上是在尝试将TreeView
控件绑定到它的数据源。
浏览器视图.xaml
<UserControl>
<TreeView
x:Name="StatusTree"
ItemContainerStyle="{StaticResource TreeViewItemStyle}"
ItemsSource="{Binding Status, Mode=OneTime}"
ItemTemplate="{StaticResource CheckBoxItemTemplate}"
/>
</UserControl>
浏览器视图模型.cs
public class BrowserNewViewModel : WorkspaceViewModel
{
public BrowserNewViewModel(string name)
{
this.DisplayName = name;
}
public List<TreeViewModel> Status
{ ... }
}
下面描述了我如何实例化 ViewModel。我WorkspaceViewModel
按照Josh Smith 的 MVVM 文章使用界面。TreeViewModel
在这里解释。
MainWindowViewModel.cs
void DisplayBrowser()
{
BrowserViewModel browserViewModel = new BrowserViewModel("Browser");
this.AddTab(browserViewModel);
}
这个问题描述了一个类似的场景,但答案对我不起作用,因为我没有明确引用UserControl
.MainWindow
我知道我不能DataTemplate
在 MainWindow 中定义 a,Resources
因为 BrowserViewModel 有一个带参数的构造函数。
还有其他解决方案需要使用框架。有没有避免使用框架的简单方法?