簡體   English   中英

如何將控件從DataTemplate獲取到ControlTemplate?

[英]How to get Control from DataTemplate to ControlTemplate ?

<ListBox>
   <ListBox.ItemTemplate>
      <DataTemplate>
        <Button Content="Click Me"
                Click="OnClick"
                Name="btn"/>
      </DataTemplate>
   </ListBox.ItemTemplate></ListBox>

我想在單擊Button時獲取相關的ListBoxItem。如何執行此操作?

private void OnClick(object sender, RoutedEventArgs e){// How to get ListBoxItem?}

您可以使用Linq-to-VisualTree進行以下操作:

Button btn = sender as Button;
ListBoxItem item = btn.Ancestors<ListBoxItem>().Cast<ListBoxItem>().First();

這將找到所需類型的按鈕的第一個祖先。

或者,如果您正在使用數據綁定,則可以檢查Button的繼承的DataContext ,以查看其綁定到哪個模型項。 那將是我的首選。

暫無
暫無

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

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