Текстовое поле привязки Silverlight Текстовое свойство к общему свойству UserControl - PullRequest
1 голос
/ 29 ноября 2010

У меня есть пользовательский элемент управления, который реализует INotifyPropertyChanged и имеет свойство SelectedTopicDescription, и я пытаюсь привязать текстовое свойство textbox к этому общедоступному свойству.Я знаю, что свойство изменяется, однако текстовое поле не обновляется.

Я пробовал несколько вещей, и я знаю, что это должно быть легко.

Я попытался использовать следующий текстовый текст вUserControl xaml, но это не имело никакого эффекта.Я читал о свойствах зависимости, но разве я не смогу сделать это с помощью INotifyPropertyChanged?

Ваша помощь приветствуется.

DataContext = "{Binding RelativeSource = {RelativeSource Self}}}

public partial class CodePage : UserControl  ,INotifyPropertyChanged{

    private string _selectedTopicDescription = string.Empty;
    public string SelectedTopicDescription {
        get { return _selectedTopicDescription; }
        set { 
            _selectedTopicDescription = value; 
            OnPropertyChanged("SelectedTopicDescription"); 
        }
    }

    public event PropertyChangedEventHandler PropertyChanged;
    protected virtual void OnPropertyChanged(string property) {
        PropertyChangedEventHandler ph = this.PropertyChanged;
        if (ph != null)
            ph(this, new PropertyChangedEventArgs(property));
    }

...

Текстовое поле: .. Width = "200" Margin = "141,142,0,153" Text = "{Binding SelectedTopicDescription}" HorizontalAlignment = "Left">

Ответы [ 2 ]

2 голосов
/ 29 ноября 2010

Вероятно, не стоит возиться с DataContext, когда связываете элементы в Usercontrol со свойствами этого UserControl. Вместо этого направьте привязку к UserControl через свойство ElementName Binding, например: -

<TextBox Text="{Binding Parent.SelectedTopicDescription, ElementName=LayoutRoot, Mode=TwoWay}" />

При этом используется тот факт, что элемент Content в пользовательском элементе управления имеет имя "LayoutRoot" и что, в свою очередь, FrameworkElement имеет свойство Parent, которое будет UserControl.

0 голосов
/ 29 ноября 2010

Mode = TwoWay, в выражении XAML DataBinding

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