在未定义DataTemplate时,使用构造函数参数将View绑定到ViewModel

时间:2013-03-04 20:29:05

标签: wpf mvvm

如果没有定义DataTemplate,如何使用构造函数参数将View绑定到ViewModel?

我基本上试图将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 article使用WorkspaceViewModel界面。 TreeViewModelexplained here

MainWindowViewModel.cs

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

This question描述了类似的情况,但答案对我不起作用,因为我没有UserControlMainWindow的明确引用。

我知道我无法在MainWindow的DataTemplate中定义Resources,因为BrowserViewModel有一个带参数的构造函数。

还有其他解决方案需要使用框架。是否有简单的方法避免使用框架

0 个答案:

没有答案