我有一个 MainWindow.xaml(由 TabControl 组成)和一些 UserControls(加载到 TabItems 中)。一个特定的 UserControl 有一个 WPFToolkit DataGrid 自定义列(不是自动生成的)。其中一列是 ComboBox 类型的列,它绑定到我的模型中名为“Status”的属性。我还有一个名为“FollowUpStatus”的状态枚举。此 ComboBox 列声明如下:
<WpfTK:DataGridComboBoxColumn
Header="Status"
SelectedItemBinding="{Binding Status}"
ItemsSource="{Binding Source={StaticResource FollowUpStatusProvider}}" />
FollowUpStatusProvider 是一个 ObjectDataProvider,在应用程序资源级别声明如下 - 对 MainWindow 和所有 UserControl 都可见:
<ObjectDataProvider x:Key="FollowUpStatusProvider"
MethodName="GetValues" ObjectType="{x:Type DAL:FollowUpStatus}">
<ObjectDataProvider.MethodParameters>
<x:Type TypeName="DAL:FollowUpStatus"/>
</ObjectDataProvider.MethodParameters>
</ObjectDataProvider>
在运行时一切正常。在设计时,从 MyUserControl.xaml 中,设计器将其呈现为正常。但是我的 MainWindow 抱怨它不能“创建一个'MyUserControl'类型的实例”。导致 MainWindow 阻塞的代码是 ComboBox 列中对 ItemsSource 的赋值:
... ItemsSource="{Binding Source={StaticResource FollowUpStatusProvider}}" ...
如果我删除此分配,一切都会按预期工作。
有人可以帮我理解为什么以及如何解决它吗?
谢谢!