Привязать Textblock к статическому классу - PullRequest
0 голосов
/ 09 мая 2011

Я пытаюсь привязать статический класс и не могу заставить его работать правильно.Вот что у меня есть для 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"));

1 Ответ

0 голосов
/ 09 мая 2011

Измените поле Player1 на свойство.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...