在app.xaml.cs中的依赖属性

7

我是一名新手,对WPF不太了解,以下问题可能看起来很幼稚,请见谅。

如何在app.xaml.cs中创建依赖属性?

实际上,我尝试过创建它。下面是代码:

    public static DependencyProperty TempProperty =
       DependencyProperty.Register("Temp", typeof(string), typeof(App));

    public string Temp
    {
        get { return (string)GetValue(TempProperty); }
        set { SetValue(TempProperty, value); }
    }

出现以下编译时错误:

当前上下文中不存在名称'GetValue'

当前上下文中不存在名称'SetValue'

有人能帮我吗?

谢谢!


2
没有愚蠢的问题。至少,不是你的 :) - shahkalpesh
2个回答

13

依赖属性(DependencyProperties)只能在依赖对象(DependencyObjects)上创建,因为 Application(它是您的 App 类继承的类)没有实现它,所以您不能直接在 App 类上创建 DependencyProperty。

我假设您希望此属性支持绑定。 如果是这种情况,则有两个选项:

  1. 在App.xaml.cs中实现 INotifyPropertyChanged 接口。
  2. 创建一个派生自 DependencyObject 的类,并将其作为 App 的标准只读属性公开。然后,可以通过“点”连接符成功地绑定属性。例如,如果您的新属性名为 Properties,则可以这样绑定:
   <TextBlock Text="{Binding Properties.Temp}" />

如果属性需要成为绑定的目标,那么选项#2是最佳选择。


猜对了!选项二就是我要找的。 它帮了我一个大忙...谢谢! - Vijay

1
你的包含依赖属性的类必须继承自 DependencyObject。

所以,在App.xaml.cs中我不能有依赖属性。 - Vijay
你可以添加一个继承自DepObj的辅助类作为你的App类的属性。 - Jeremiah Morrill

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接