所有
是否可以从DataContext中的对象创建一个StaticResource(没有添加代码隐藏)?以UserControl的DependencyProperty为例:
public static DependencyProperty ViewModelProperty = DependencyProperty.Register("ViewModel", typeof(IVMHeaderGeneric), typeof(UIHeader), new FrameworkPropertyMetadata(null, FrameworkPropertyMetadataOptions.AffectsRender));
public IVMHeaderGeneric ViewModel
{
get
{
return (IVMHeaderGeneric)this.GetValue(ViewModelProperty);
}
set
{
this.SetValue(ViewModelProperty, value);
}
}
IVMHeaderGeneric
是由此用户控件的使用者实例化为类的接口。
我需要做的是,以某种方式(最好没有代码隐藏),将它添加到UserControl的资源,从而允许我在不继承DataContext的UIElements上执行数据绑定(即想到DataGridColumn)。
提前致谢。
答案 0 :(得分:0)
我认为您无法在 xaml 资源中创建界面的实例,因为正如您所说,实现不在 UserControl 强>范围。
您可以使用绑定来引用 UserControl DataContext属性,而不是创建 StaticResource 。例如,如果您提供根元素的名称Root
,则可以编写以下内容:
<DataGridColumn SomeDependencyProperty="{Binding ElementName=Root, Path=ViewModel.Property}" />