我的公共静态类Config.cs从Config.xml文件中读取值。
public static class Config
{
public static string ImagePathBrowse { get; private set; }
public static bool LoadFromXML()
{
//sets ImagePathBrowse
}
我有一个登录窗口作为视图类,绑定到登录窗口视图模型:
public LoginWindow()
{
InitializeComponent();
LoginWindowViewModel VM = new LoginWindowViewModel();
this.DataContext = VM;
}
我可以轻松地绑定到属性并在我的视图模型类中使用它们,但是在拥有此视图模型类时,我还想要读取一些图像路径/字体类型e.t.c.来自我的Config课程。我在我的xaml文件中试过这个:
<Window....
xmlns:local="clr-namespace:MeineProject"
.../>
<Image x:Name="image" Source="{Binding Path={x:Static local:Config.ImagePathBrowse}}" HorizontalAlignment="Left" Height="50" Margin="145,185,0,0" VerticalAlignment="Top" Width="150"/>
我尝试过Mode = OneWay,因为它是单向绑定,但它也没有用。
我还在学习WPF / MVMM并阅读有关该主题的所有问题,互联网上的其他人都建议使用上面的代码进行静态链接,但它并不起作用。我得到一个例外:
抛出异常:&#39; System.Windows.Markup.XamlParseException&#39;在 PresentationFramework.dll
其他信息:&#39;设置属性 &#39; System.Windows.Data.Binding.Path&#39;抛出异常。&#39;电话号码 &#39; 39&#39;和行位置&#39; 31&#39;。
我一直试图解决这个问题几个小时,非常感谢任何帮助/建议。
答案 0 :(得分:0)
您需要设置Source
而不是Path
<Image Source="{Binding Source={x:Static local:Config.ImagePathBrowse}}" .../>
Path
适用于当前绑定上下文,因此您需要更改源
答案 1 :(得分:0)
从WPF 4.5开始,您还可以使用以下语法绑定到静态属性:
<Image Source="{Binding Path=(local:Config.ImagePathBrowse)}" .../>