这是一个WPF问题。我的解决方案中有两个项目,比如ProjectA和ProjectB,ProjectB引用ProjectA。在ProjectA App.cs类中,我声明了一个属性PropA(public和static)。我的问题是:如何从ProjectB中的XAML绑定到PropA?
显然
{Binding PropA,Source={x:Static Application.Current}}
不起作用,我无法解决问题。任何帮助将不胜感激!
更新
为了澄清任何混淆,这里有一些细节。 ProjectA包含一个需要更新App级别集合的ViewModel类。我的问题是从ProjectB中的窗口绑定到XAML中的集合。我最终通过将集合移动到ProjectB App类并从ProjectA中的ViewModel触发事件来解决这个问题。然后,在窗口的代码隐藏(我将ViewModel的实例设置为数据上下文)中,我只需订阅该事件并相应地执行操作。 MVVM纯粹主义者现在可能会变成绿色,但一点点代码隐藏永远不会伤害!
答案 0 :(得分:0)
您可以将其提取到第三个项目,让另外两个使用它。
答案 1 :(得分:0)
您需要引用ProjectA.App
实例。例如,您可以在ProjectB.App
上拥有公共财产:
namespace ProjectB
{
public partial class App : Application
{
...
// this public property exposes an instance of ProjectA.App
public ProjectA.App TheOtherApp ...
...
}
}
然后你就像绑定它一样:
{Binding TheOtherApp.PropA, Source={x:Static Application.Current}}