簡體   English   中英

NotifyPropertyChanged沒有開火

[英]NotifyPropertyChanged not firing

我正在嘗試捕獲ListBoxSelectedItem ,然后觸發Button數據模板單擊事件。 我在notifypropertychanged事件處理程序中放置了一個斷點,但它永遠不會觸發。 我在這做錯了什么?

XAML:

   <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>

C#:

public partial class PlayerCrowdPromptPage: INotifyPropertyChanged {

     public PlayerCrowdPromptPage() {
          InitializeComponent();
          DataContext = this;
     }

    private ObservableCollection<PlayerCrowdObjectBO> childObjectOC = new ObservableCollection<PlayerCrowdObjectBO>();
    public ObservableCollection<PlayerCrowdObjectBO> ChildObjectOC {
        get {
            return childObjectOC;
        }
        set {
            childObjectOC = value;
        }
    }

     private PlayerCrowdObjectBO selectedChildObject;
     public PlayerCrowdObjectBO SelectedChildObject {
         get { return selectedChildObject; }
         set {
               selectedChildObject = value;
               OnPropertyChanged("SelectedChildObject");
         }
    }

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

單擊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事件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM