2011-07-21 100 views
0

我需要綁定到靜態屬性在我App.xaml.cs類迄今使用這樣做:WPF綁定到應用程序屬性

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

當應用程序被直接運行該工程確定,但當應用程序從另一個應用程序啓動時,這些綁定不起作用,因爲我相信Application.Current然後指向父應用程序而不是xaml所在的應用程序。

我該如何綁定到直接的App.xaml.cs文件屬性而不是來自父應用程序的屬性?

希望有道理!

+0

什麼是「從另一個應用程序啓動」多呢?它是在一個不同的過程? –

+0

我並不特別清楚那個!即Application1具有對Application2的引用。然後在Application1下,像Application2.MainWindow app2Main = new Application2.MainWindow();叫做。 –

+0

在這種情況下,沒有創建任何Application2實例... –

回答

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> 

任何其他建議仍高於歡迎:)