2013-03-28 3 views
0

Все,Создать StaticResource из DataContext?

Возможно ли создать StaticResource из объекта в DataContext (без добавления кода)? Возьмем, к примеру DependencyProperty в виде UserControl:

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, что позволит мне выполнять привязки данных в UIElements, которые не наследуют DataContext (то есть DataGridColumn приходит на ум) ,

Заранее спасибо.

ответ

0

Я думаю, что вы не можете создать экземпляр интерфейсав XAML ресурсов, потому что, как вы сказали, реализация из UserControl области видимости.

Вместо создания StaticResource, вы можете использовать Binding обратиться к UserControl DataContext собственности. Например, если вы укажете имя вашего корневого элемента, Root, вы можете написать следующее:

<DataGridColumn SomeDependencyProperty="{Binding ElementName=Root, Path=ViewModel.Property}" /> 
Смежные вопросы