簡體   English   中英

WPF DataBinding-重復控件按鈕觸發的事件

[英]WPF DataBinding - Fire event from a repeated control button

關於綁定的問題開始 ,我想在以下情況下尋求幫助。

我有一個通過ListBox控件中的DataTemplate顯示的對象(imageFileData)的集合。 該控件綁定到一個ObservableCollection。 集合和模板都在我的應用程序xaml和xaml.cs文件中定義。 將項目動態添加到集合中將按預期工作,並在我的列表框中顯示一個新的模板化項目。 好。

我想做的一件事情是通過單擊DataTemplate中定義的按鈕從集合中刪除特定項目。 為按鈕定義Click處理程序使我可以處理事件,但是我不知道從何處獲取與模板化按鈕相關的imageFileData對象。 我的按鈕事件處理程序顯然將按鈕作為發送方傳遞,並傳遞了一組RoutedEventArgs,但是我不知道如何將該數據與集合中的項目相關聯,以便允許我將其刪除。

誰能幫我這個忙,還是因為我不知道從哪里開始,我注定要笨拙而徒勞的Google搜索? ;)

謝謝ZS

用於生成項目的數據將在ButtonDataContext (它從容器繼承-在您的情況下為ListBoxItem ):

private void ButtonClicked(object sender, EventArgs e)
{
    var button = sender as Button;
    var imageFileData = button.DataContext as ImageFileData;

    ...
}

另一種方法是將可視樹移動到ListBoxItem (包含您在datatemplate定義的所有元素)。 ListBoxItem包含被單擊的按鈕時,您可以輕松獲取和刪除ListBoxItem的數據。

走可視化樹向上的一個例子被發現這里GetObjectDataFromPoint這里FindAncestor

暫無
暫無

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

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