我很难将简单的静态字符串属性绑定到 TextBox。
这是具有静态属性的类:
public class VersionManager { private static string filterString; public static string FilterString { get { return filterString; } set { filterString = value; } } }
在我的 xaml 中,我只想将此静态属性绑定到 TextBox:
<TextBox> <TextBox.Text> <Binding Source="{x:Static local:VersionManager.FilterString}"/> </TextBox.Text> </TextBox>
一切都编译,但在运行时,我得到以下异常:
无法将属性“Source”中的值转换为“System.Windows.Markup.StaticExtension”类型的对象。标记文件“BurnDisk;component/selectversionpagefunction.xaml”第 57 行位置 29 中的对象“System.Windows.Data.Binding”出错。
知道我做错了什么吗?
如果绑定需要双向,则必须提供路径。
如果类不是静态的,则对静态属性进行双向绑定有一个技巧:在资源中声明该类的虚拟实例,并将其用作绑定的源。
<Window.Resources> <local:VersionManager x:Key="versionManager"/> </Window.Resources> ... <TextBox Text="{Binding Source={StaticResource versionManager}, Path=FilterString}"/>