Как я могу установить DataContext в моей Grid в XAML, а не в конструкторе?
Вот как я это делаю в конструкторе (LayoutRoot - это сетка XAML, определенная в XAML):
this.LayoutRoot.DataContext = this.HPVM;
Я бы предпочел сделать это прямо в XAML, но я не знаю, как ссылаться на объект HPVM в XAML. HPVM является публичной собственностью класса USerControl.
Он отлично работает, как указано выше, но, опять же, я просто хочу узнать, как свойства класса UserControl в XAML, а не всегда делать это в коде.
Вот весь соответствующий код:
<UserControl x:Class="SilverlightApplication1.SLHolePattern" x:Name="HolePatternsControl"
xmlns="http://schemas.microsoft.com/client/2007"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
xmlns:controls="clr-namespace:Microsoft.Windows.Controls;assembly=Microsoft.Windows.Controls"
xmlns:local="clr-namespace:SilverlightApplication1"
xmlns:GeoPatterns="clr-namespace:GeoPatterns"
Height="700">
<UserControl.Resources>
...
А вот мой конструктор, в котором в данный момент установлен DataContext:
namespace SilverlightApplication1
{
public partial class SLHolePattern : UserControl, INotifyPropertyChanged
{
public HolePatternsViewModel HPVM;
public SLHolePattern()
{
InitializeComponent();
this.HPVM=new HolePatternsViewModel();
this.LayoutRoot.DataContext = this.HPVM;
...more code here
}
Все отлично работает, но я просто хочу узнать, как установить DataContext в XAML, а не в коде.