从DataContext创建StaticResource?

时间:2013-03-28 23:47:51

标签: wpf mvvm datacontext staticresource

所有

是否可以从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)。

提前致谢。

1 个答案:

答案 0 :(得分:0)

我认为您无法在 xaml 资源中创建界面的实例,因为正如您所说,实现不在 UserControl 范围。

您可以使用绑定来引用 UserControl DataContext属性,而不是创建 StaticResource 。例如,如果您提供根元素的名称Root,则可以编写以下内容:

<DataGridColumn SomeDependencyProperty="{Binding ElementName=Root, Path=ViewModel.Property}" />