我正在尝试从我的Resource Dictionary的代码后台设置ResourceDictionary DataContext。
我有一个使用自己样式(Resource Dictionary)的Data Template,样式包含一个带有自己样式的复选框:
<Style x:Key="CheckBoxStyle" TargetType="CheckBox">
<EventSetter Event="CheckBox.Checked" Handler="CheckBox_Checked"/>
<EventSetter Event="CheckBox.Unchecked" Handler="CheckBox_Unchecked"/>
</Style>
在 CheckBox_Checked 事件中,我想要引用字典的父级(一个用户控件)视图模型来执行一个函数,但由于资源字典没有 DataContext 属性设置 DataContext,因此无法从控件事件内部设置。例如:
private void CheckBox_Checked(object sender, RoutedEventArgs e)
{
MyViewModel viewModel = (MyViewModel)DataContext;
}
当然不起作用。
我认为我需要获取祖先(资源字典用户控件)的句柄,但不知道如何做到这一点 - 或者可能有其他方法。
谢谢。
乔