Невозможно выполнить привязку к статическому классу, поскольку для привязки требуется экземпляр объекта.
Однако вы можете привязать статические свойства класса.
Вы можете использовать следующую технику, если вы изменили Global
, чтобы он не был статическим, но оставил все его свойства как статические.
Предполагая, что:
namespace StaticBinding
{
public class MyStaticClass
{
private static string myStaticProperty = "my static text";
public static string MyStaticProperty
{
get { return myStaticProperty; }
set { myStaticProperty = value; }
}
}
}
Тогда, если вы определите следующий ресурс приложения:
.. xmlns:myns="clr-namespace:StaticBinding"
<Application.Resources>
<myns:MyStaticClass x:Key="MyStaticClassResource" />
</Application.Resources>
Тогда на своей странице вы можете просто сделать следующее:
<TextBlock Text="{Binding Path=MyStaticProperty,
Source={StaticResource MyStaticClassResource}}" />
Это даже даст вам intellisense на Path
.
Это позволяет вам связываться с «глобальными» статическими переменными и при этом оставлять текст данных свободным, чтобы просто содержать любую модель, с которой вы хотите связать.