Вы бы связались с Data
<DataTemplate DataType="{x:Type vm:LiteGridViewModel}">
<lite:LiteGrid GridViewData="{Binding Data}"/>
</DataTemplate>
Было бы даже лучше сделать это связывание в LiteGrid
UserControl вместо того, чтобы полагаться на XAML, который использует элемент управления для установки значения.
<UserControl GridViewData="{Binding Data}">
...
</UserControl>
Ваши привязки всегда ссылаются на текущий объект DataContext
.Поскольку ваш DataTemplate
предназначен для типа LiteGridViewModel
, DataContext
внутри этого DataTemplate
всегда будет иметь тип LiteGridViewModel
.
Например, если у вас есть класс, такой как
public class MyClassA
{
MyClassB ClassB {get; set;}
}
public class MyClassB
{
MyClassC ClassC {get; set;}
}
И свойство ViewModel MyClassA ClassA
(что означает, что вы можете ссылаться на ClassA.ClassB.ClassC
), вы можете сделать что-то вроде
<ContentControl Content="{Binding ClassA}">
<ContentControl Content="{Binding ClassB}"> <!-- DataContext is MyClassA -->
<ContentControl Content="{Binding ClassC}"> <!-- DataContext is MyClassB -->
<!-- DataContext is MyClassC -->
</ContentControl>
</ContentControl>
</ContentControl>