2010-01-21 2 views
0

я подгонял ListBox объявлен в XAML:WPF: Привязка Настроенного ListBox & Списка <T>: PropertyChanged всегда нулевая

<ListBox x:Name="uicMDSQonfServer"> 
    <ListBox.ItemTemplate> 
    <DataTemplate> 
     <StackPanel Orientation="Horizontal" 
        Margin="0,5,0,5"> 
     <CheckBox IsChecked="{Binding RelativeSource={TemplatedParent}, 
             Path=Activated}" /> 
     <ContentPresenter Content="{Binding RelativeSource={TemplatedParent}, 
            Path=Content}"/> 
     </StackPanel> 
    </DataTemplate> 
    </ListBox.ItemTemplate> 
</ListBox> 

мне нужно dsiplay и Interop с родовым List, где Т:

public class QonfServer: QonfBase, INotifyPropertyChanged 
{ 
     private string ip; 
     private bool activated; 

     public string Ip { 
      get { return ip; } 
     } 

     public bool Activated 
     { 
      get { return activated; } 
      set 
      { 
       if (activated == value) 
        return; 

       activated = value; 
       if (PropertyChanged != null) 
        PropertyChanged(this, new PropertyChangedEventArgs("Activated")); 
      } 
     } 

     #region INotifyPropertyChanged Members 
     public event PropertyChangedEventHandler PropertyChanged; 
     #endregion 
    } 

QonfBase довольно простой базовый класс:

public class QonfBase 
{ 
     private int id; 
     public int ID { get; set; } 
} 

Когда я перехожу Activ программным образом, флажок не меняет состояние. Отладка: PropertyChanged = null. Кто-нибудь знает, что неверно?

+0

Вы проверяете выходное окно? существуют ли обязательные ошибки? –

+0

Ошибок привязки нет. – Pavel

ответ

1

Одна очевидная проблема встречает глаз: TemplatedParent предназначен для использования с ControlTemplate. Так как вы используете DataTemplate, это должно работать:

<CheckBox IsChecked="{Binding Activated}" /> 
<ContentPresenter Content="{Binding Content}"/> 

я не заметил каких-либо проблем с C#.

+0

Спасибо, Рэй! Я удалил явный RelativeSource и теперь его работу! – Pavel

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

  • Нет связанных вопросов^_^