【问题标题】:WPF Binding To Application PropertiesWPF 绑定到应用程序属性
【发布时间】:2011-07-21 08:37:15
【问题描述】:

我需要绑定到我的 App.xaml.cs 类中的静态属性,并且到目前为止已使用:

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

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

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

希望这是有道理的!

【问题讨论】:

  • “从另一个应用程序开始”是什么意思?是否在不同的过程中?
  • 那个我不是特别清楚!即 Application1 引用了 Application2。然后在 Application1 下,类似于 Application2.MainWindow app2Main = new Application2.MainWindow();被调用。
  • 在这种情况下,不会创建 Application2 的实例...

标签: wpf binding


【解决方案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>

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

【讨论】:

    猜你喜欢
    • 2011-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-07
    • 2010-10-05
    • 2023-03-26
    • 1970-01-01
    相关资源
    最近更新 更多