ViewModel的XAML DataTemplate在使用附加行为时如何引用它?

时间:2013-06-18 14:32:16

标签: wpf xaml mvvm

我有一个WPF应用程序,其中一个窗口有一个ViewModel,它在MainWindowContentControl内托管多个用户控件(带有自己的视图模型)。我在主窗口的视图模型中为我的所有用户控件设置了视图模型,如下所示:

// Add Client Billing pages
ActiveContributorsVM = new ActiveContributorsVM();
PageViewModels.Add(ActiveContributorsVM);

所以,在我主窗口的XAML中,我有:

<Window.Resources>
    <!--Client Billing User Controls and View Models-->
    <DataTemplate DataType="{x:Type ClientViewModels:ActiveContributorsVM}">
        <ClientViews:ActiveContributors />
    </DataTemplate>
</Window.Resources>

其中ActiveContributorsVMViewModel,而ActiveContributors是我在内容控件中托管的用户控件的视图。这很好,显示一切都很完美。然后我尝试将一个行为添加到ActiveContributors用户控件的XamDataGrid的xaml中,如下所示:

<igDP:XamDataGrid Name="ActiveDP" Grid.Row="3" Theme="RoyaleStrong" ActiveDataItem="{Binding SelectedItem}" BindToSampleData="False" DataSource="{Binding ActiveContrib}" AutoFit="True" >
    <i:Interaction.Behaviors>
        <b:XamDataGridSelectedItemsBehavior SelectedItems="{Binding SelectedItems}" />
    </i:Interaction.Behaviors>

这导致行为类中的null异常,特别是SelectedItems集合。我假设它正在使用我的ActiveContributorsVM视图模型的不同实例。我如何引用已经创建的Vview模型?我知道在设置datacontext时行为类工作正常,如我从中得到的示例:http://www.infragistics.com/community/forums/t/80298.aspx

0 个答案:

没有答案