【问题标题】:Create StaticResource from DataContext?从 DataContext 创建静态资源?
【发布时间】:2013-03-28 23:47:50
【问题描述】:

全部,

是否可以从 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 的 UIElement 执行数据绑定(即想到 DataGridColumn)。

提前致谢。

【问题讨论】:

    标签: wpf mvvm datacontext staticresource


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-04
      • 2017-11-05
      • 2013-08-01
      • 2014-08-29
      • 1970-01-01
      • 2014-07-29
      相关资源
      最近更新 更多