WPF绑定到应用程序属性

时间:2011-07-21 08:37:15

标签: wpf binding

我需要绑定到App.xaml.cs类中的静态属性,到目前为止使用以下方法完成此操作:

Property="{Binding Source={x.Static Application.Current}, Path=SomePath}"

当直接运行应用程序时,这可以正常工作,但是当应用程序从另一个应用程序启动时,这些绑定不起作用,因为我认为Application.Current然后指向父应用程序而不是xaml所在的应用程序下。

如何绑定到直接的App.xaml.cs文件属性而不是父应用程序的属性?

希望有意义!

1 个答案:

答案 0 :(得分:1)

所以我到目前为止找到的一个解决方案是在App.xaml.cs和我试图绑定的XAML之间放一个类:

<强> App.xaml.cs:

public partial class App : Application
{
    public static string SomeText;

    protected override void OnStartup(StartupEventArgs e)
    {
        base.OnStartup(e);
        SomeText = "Here is some text";
    }
}

<强> MyProperties.cs:

public class MyProperties
{
    public static string SomeText
    {
        get { return App.SomeText; }
    }
}

<强> MainWindow.xaml:

<Window.Resources>
    <local:MyProperties x:Key="properties"/>
</Window.Resources>

<Grid>
    <TextBlock Text="{Binding Source={StaticResource properties}, 
                              Path=SomeText}"/>
</Grid>

任何其他建议仍然非常受欢迎:)