0

全部,

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

提前致谢。

4

1 回答 1

0

我认为您无法在xaml资源中创建接口实例,因为正如您所说,实现超出了UserControl范围。

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

<DataGridColumn SomeDependencyProperty="{Binding ElementName=Root, Path=ViewModel.Property}" />
于 2013-03-29T04:35:01.927 回答