【发布时间】:2010-09-14 07:17:17
【问题描述】:
我有一个 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 数据模板在 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 的父级时,我可以达到的最高级别是数据模板正在使用中。
我需要访问的是父窗口本身。
注意: 我尝试将依赖属性添加到自定义复选框控件,并将其绑定到已发送对象(数据模板的项目 DataType 对象)中的额外定义变量,该变量具有窗口引用作为其值,但即使所有绑定了其他依赖属性/值。
【问题讨论】:
标签: c# wpf binding generic.xaml