WPF 将静态对象分配给 XAML 中的 DataContext
WPF assign static object to a DataContext in XAML
我处于必须使用 static
对象作为我的 DataContext
的情况。
我读过很多推荐 Singleton
class 的帖子。但是,由于设计限制,我不能走这条路。
我想将静态对象分配给我的控件 DataContext
,如下所示:
<UserControl.DataContext>
<local:ViewModelA>
</UserControl.DataContext>
但是它一直告诉我它不是可用的对象,因为它没有定义 public 构造函数。
在我的静态视图模型中,我有一个静态构造函数,但由于 C# 限制,它不是 public。
谢谢
您只能将(非静态)class 的实例分配给 DataContext
属性,而不是 class。
然而,您可以绑定到静态 class 的静态 属性 SomeProperty
,例如:
<TextBlock Text="{Binding Path=(local:ViewModelA.SomeProperty)}" />
您还可以将 class 中的所有内容设为静态,但将实际的 class 设为非静态,这会给您带来与静态类似的效果。
我处于必须使用 static
对象作为我的 DataContext
的情况。
我读过很多推荐 Singleton
class 的帖子。但是,由于设计限制,我不能走这条路。
我想将静态对象分配给我的控件 DataContext
,如下所示:
<UserControl.DataContext>
<local:ViewModelA>
</UserControl.DataContext>
但是它一直告诉我它不是可用的对象,因为它没有定义 public 构造函数。
在我的静态视图模型中,我有一个静态构造函数,但由于 C# 限制,它不是 public。
谢谢
您只能将(非静态)class 的实例分配给 DataContext
属性,而不是 class。
然而,您可以绑定到静态 class 的静态 属性 SomeProperty
,例如:
<TextBlock Text="{Binding Path=(local:ViewModelA.SomeProperty)}" />
您还可以将 class 中的所有内容设为静态,但将实际的 class 设为非静态,这会给您带来与静态类似的效果。