Почему DataBinding не работает? - PullRequest
0 голосов
/ 04 июля 2010

Почему DataBinding не работает?

<TextBox Text="{Binding Path=local:MainWindow.SearchPlayer,
    Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"  />

это мой класс:

  public partial class MainWindow : Window
    {
        private Store store = new Store();
        private string _searchPlayer;
        public string SearchPlayer
        {
            get
            {
                return _searchPlayer;
            }
            set
            {
                _searchPlayer = value;
                if(_searchPlayer!="")
                {
                    ACT.DataContext = store.SearchedPlayers
                      .Where(x => x.StartsWith(_searchPlayer)).ToList();
                }
                else
                {
                    ACT.DataContext = store.Last10SearchedPlayers;
                }
            }
        }

        public MainWindow()
        {...............}

Я установил точку останова на установщике SearchPlayer, но она никогда не работала.

Ответы [ 2 ]

3 голосов
/ 05 июля 2010
<TextBox Text="{Binding Path=SearchPlayer,
                        RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type local:MainWindow}}
                        Mode=TwoWay,
                        UpdateSourceTrigger=PropertyChanged}"  />
2 голосов
/ 04 июля 2010

Я не думаю, что Binding Path=local:MainWindow.SearchPlayer будет работать, потому что MainWindow - это класс, а не экземпляр. Это может сработать, если SearchPlayer был статичным, но я не думаю, что вы этого хотите.

Просто используйте Binding Path=SearchPlayer и убедитесь, что DataContext установлен правильно. В конструкторе MainWindow: this.DataContext=this; (зависит от того, где находится текстовое поле).

И обратите внимание, что MainWindow должен реализовывать интерфейс INotifyProperty, а установщик SearchPlayer должен вызывать OnPropertyChanged.

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