我有一个ListView,允许用户通过上下文菜单更改ViewBase(它就像一个简化版的Windows资源管理器)。
<ListView Name="lv" Grid.Row ="0" Grid.Column ="1" >
<ListView.ContextMenu>
<ContextMenu>
<MenuItem Header="View1" Click="SwitchViewMenu"/>
<MenuItem Header="View2" Click="SwitchViewMenu"/>
</ContextMenu>
</ListView.ContextMenu>
<ListView.View>
<local:View1 />
</ListView.View>
</ListView>
ViewBases DataTemplates在Generic.XAML文件中定义,我使用以下函数更改所选视图:
void ChangeView(string str)
{
if (str == "View1")
{
lv.View = lv.FindResource("View1") as ViewBase;
}
else if (str == "View2")
{
lv.View = lv.FindResource("View2") as ViewBase;
}
}
问题:
我在所有DataTemplates中都有一个自定义CheckBox控件,它附加了一个预定义的点击事件,但是当我尝试向上移动CheckBox的Parent时,我可以达到的最高级别是正在使用的DataTemplate 。
我需要访问的是父窗口本身。
注意:的 我试图将一个依赖属性添加到自定义CheckBox控件并将其绑定到已发送对象(数据模板的项目DataType对象)中的一个额外定义的变量,该变量有一个窗口引用作为其值,但我仍然保持为null,即使所有其他依赖属性/值已绑定。