NotifyPropertyChanged没有开火

时间:2018-04-04 14:54:51

标签: c# wpf

当我为SelectedItem触发数据模板点击事件时,我正尝试捕获ListBox的{​​{1}}。我在notifypropertychanged事件处理程序中放置了一个断点,但它永远不会触发。我在这里做错了什么?

XAML:

Button

C#:

   <ListBox x:Name="lstbox_playerContainer"
       ItemsSource="{Binding ChildObjectOC}"  
       SelectedItem="{Binding SelectedChildObject, Mode=TwoWay}">
       <ListBox.ItemTemplate>
           <DataTemplate>
               <Button Name="btn_childButton" Click="btn_childButton_Click"/>                                        
           </DataTemplate>
        </ListBox.ItemTemplate>
   </ListBox>

1 个答案:

答案 0 :(得分:3)

点击Button不会自动选择相应的项目。您可以在事件处理程序中以编程方式选择它:

private void btn_childButton_Click(object sender, RoutedEventArgs e)
{
    Button btn = (Button)sender;
    ListBoxItem lbi = lstbox_playerContainer.ItemContainerGenerator.ContainerFromItem(btn.DataContext) as ListBoxItem;
    lbi.IsSelected = true;
}

这应该设置SelectedChildObject属性并引发PropertyChanged事件。