我有一个 WPF 应用程序,它有一个窗口,该窗口有一个 ViewModel,该窗口MainWindow
在ContentControl
. 我在主窗口的视图模型中为所有用户控件设置了视图模型,如下所示:
// 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>
ActiveContributorsVM
我在内容控件中托管的用户控件的视图ViewModel
在哪里?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>
这会导致行为类(特别是SelectedItems
集合)中出现空异常。我假设它正在使用我的ActiveContributorsVM
视图模型的不同实例。我将如何引用已经创建的 Vview 模型?我知道当数据上下文设置为我从中获得的示例中时行为类工作正常:http: //www.infragistics.com/community/forums/t/80298.aspx