Я пытаюсь привязать статический класс и не могу заставить его работать правильно.Вот что у меня есть для XAML:
<Window.Resources>
<Game:ActivePlayers x:Key="ActivePlayerInfo" />
</Window.Resources>
<TextBlock x:Name="p1_Name" TextWrapping="Wrap"
Text="{Binding Source={StaticResource ActivePlayerInfo}, Path=PlayerInfo.Player1.Name}"
TextAlignment="Center" FontFamily="Showcard Gothic" VerticalAlignment="Top" />
Я могу получить доступ к классу ActivePlayerInfo, потому что, если я изменю Path на равное «Name» (созданное мной временное свойство зависимости), оно будет работать.Вот код для класса ActivePlayerInfo:
public class ActivePlayers : DependencyObject
{
public GameInfo PlayerInfo { get { return GameInfo.Singleton; } }
public string Name
{
get { return (string)GetValue(NameProperty); }
set { SetValue(NameProperty, value); }
}
// Using a DependencyProperty as the backing store for Name. This enables animation, styling, binding, etc...
public static readonly DependencyProperty NameProperty =
DependencyProperty.Register("Name", typeof(string), typeof(ActivePlayers), new UIPropertyMetadata(""));
public ActivePlayers()
{
Name = PlayerInfo.Player1.Name;
}
}
GameInfo.Singleton:
public class GameInfo
{
private static GameInfo gameDetails = new GameInfo();
public static GameInfo Singleton
{
get { return gameDetails; }
}
public PlayerDetails Player1 = new PlayerDetails();
И, наконец, PlayerDetails содержит:
public string Name
{
get { return (string)GetValue(NameProperty); }
set { SetValue(NameProperty, value); }
}
public static readonly DependencyProperty NameProperty =
DependencyProperty.Register("Name", typeof(string), typeof(PlayerDetails), new UIPropertyMetadata("New Player"));