2010-11-28 2 views
1

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

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

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

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

DataContext = "{Binding RelativeSource = {RelativeSource Само}}"

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)); 
    } 

...

Текстовое поле есть .. ширина = "200" Margin = "141,142,0,153" Text = "{Binding} SelectedTopicDescription" HorizontalAlignment = "левый">

+0

Вы пытались назначить DataContext непосредственно в коде? – 2010-11-28 23:32:23

ответ

2

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

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

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

0

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

Смежные вопросы