Silverlight 无法检索TreeViewItem的对象

Silverlight 无法检索TreeViewItem的对象,silverlight,Silverlight,我在Silverlight中有一个树视图,我在.xaml页面的加载事件中从代码中动态创建它。My treeview包含许多treeview项。My treeview项的标题包含一个堆栈面板。我的stackpanel包含一个作为子项的复选框。我已经为复选框的未选中事件创建了一个事件处理程序。 现在我的问题来了。 当触发“我的复选框”的未选中事件时,我希望检索使用该复选框的treeviewitem对象。 下面的代码片段显示了我如何创建我的TreeView项目 objTreeviewItem

我在Silverlight中有一个树视图,我在.xaml页面的加载事件中从代码中动态创建它。My treeview包含许多treeview项。My treeview项的标题包含一个堆栈面板。我的stackpanel包含一个作为子项的复选框。我已经为复选框的未选中事件创建了一个事件处理程序。

现在我的问题来了。
当触发“我的复选框”的未选中事件时,我希望检索使用该复选框的treeviewitem对象。 下面的代码片段显示了我如何创建我的TreeView项目

    objTreeviewItem = new TreeViewItem();                                        
    objStackPanel = new StackPanel();        
 objStackPanel.Orientation = Orientation.Horizontal;
objCheckBox = new CheckBox();
   objCheckBox.Content = "Checkbox1";
   objCheckBox.Unchecked += new RoutedEventHandler(objCheckBox_Unchecked);
   objStackPanel.Children.Add(objCheckBox);  
   objTreeviewItem.Header = objStackPanel;
以下是复选框未选中事件的代码段

void objCheckBox_Unchecked(object sender, RoutedEventArgs e)
        {                
            try
            {

                   TreeViewItem objItem = (((e.OriginalSource) as CheckBox).Parent as StackPanel).Parent as TreeViewItem;                                                                

            }
            catch (Exception ex)
            {

            }
        }
try块中的上述语句返回空值。因此,我无法检索正在使用已触发事件的复选框的TreeView项目。
那么,是否有任何其他属性或方法(除父属性外)可以帮助我获取treeviewitem。

请提供任何类型的帮助,我们将不胜感激。

属性不会返回您的复选框,但无论事件在哪个控件上启动(可能是复选框内的文本块),请改为使用
发送者
,它将始终是与事件关联的控件。

是的,我尝试强制转换发件人对象,但得到的值为空。您不应该使用所有这些安全强制转换,这样您至少可以看到您强制转换的错误所在。或者只需使用调试器,设置断点并查看所有变量都包含什么。