簡體   English   中英

WPF:通過(分層)數據模板獲取可視化的對象

[英]WPF: Get object visualized by (hierarchical) data template

我有一個TreeView,里面有幾個項目。 這些項目通過簡單的分層數據模板可視化,如下所示:

<HierarchicalDataTemplate x:Key="instanceTemplate">
  <CheckBox Checked="InstanceCheckChanged" Unchecked="InstanceCheckChanged">
    <Label>Hello World!</Label>
  </CheckBox>
</HierarchicalDataTemplate>

如您所見,我添加了一個事件處理程序,這是后面的代碼:

private void InstanceCheckChanged(object sender, RoutedEventArgs e)
{
  CheckBox checkBox = (CheckBox)sender;
}

在此事件處理程序中,事件的發送者顯然是復選框本身,但是該復選框實際上是在可視化我的普通對象。 我的問題是,如何獲得復選框可視化的對象? 優選地,我希望有一個帶有如下簽名的方法:

public MyObject GetMyObject(UIElement sender);

在WPF中這是否可行,還是有一種干凈的方法來存儲一些元數據,以便我知道檢查了哪個MyObject?

CheckBox的DataContext將是它所代表的對象:

var myObject = ((CheckBox)sender).DataContext as MyObject;

暫無
暫無

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

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