gpt4 book ai didi

c# - 如何在 XAML 中绑定(bind)到静态属性?

转载 作者:太空宇宙 更新时间:2023-11-03 22:08:18 24 4
gpt4 key购买 nike

我正在尝试将不同类的静态属性绑定(bind)到 TextBlock 的文本属性,并且可以使绑定(bind)工作,但是当静态属性的值发生变化时,文本属性没有更新。我读到我不能使用 INotifyPropertyChanged 因为该属性是静态的并且已经看到许多建议使用依赖属性的解决方案。我是 C# 的新手,并不真正了解如何使用依赖属性,但已经进行了几次尝试,但由于两个原因似乎不起作用。 1. 我的静态属性有自定义的 getter 和 setter 和 2. 静态属性用在许多静态方法中,我不知道如何使用依赖属性来工作。我不知道在使用依赖属性时如何使用自定义 getter 和 setter,或者是否可以这样做,或者在将静态属性更改为依赖属性后如何继续在静态方法中使用静态属性。

这是静态属性的当前代码:

public class Helper
{
public static string Token
{
get
{
using (StreamReader streamReader = new StreamReader("Token.ini"))
{
return streamReader.ReadLine();
}
}
set
{
using (StreamWriter streamWriter = new StreamWriter("Token.ini"))
{
streamWriter.WriteLine(value);
}
}
}

public static MethodThatUsesToken(){}
public static OtherMethodThatUsesToken(){}

此处是有效但不更新的绑定(bind)的当前 XAML:

<Window.Resources>
<local:Helper x:Key="helper"/>
</Window.Resources>

<TextBlock Text="{Binding Source={StaticResource helper},Path=Token Converter={StaticResource NameConverter}}"/>

非常感谢任何帮助!

最佳答案

这目前不可能,但将在 .NET 4.5 中实现:另请参阅 "WPF 4.5 – Part 9 : binding to static properties"

在此 SO 线程中发布了一个解决方法:Binding to static property

关于c# - 如何在 XAML 中绑定(bind)到静态属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7622013/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com