我该如何在XAML中设置Grid的DataContext,而不是在构造函数中设置?
以下是我在构造函数中的做法(LayoutRoot是在XAML中定义的Grid):
this.LayoutRoot.DataContext = this.HPVM;
我更喜欢在XAML中正确地完成它,但我不知道如何在XAML中引用HPVM对象。HPVM是UserControl类的公共属性。
如上所述,这个方法可以正常工作,但我想知道如何在XAML中设置UserControl类的属性,而不总是在代码中设置。
以下是所有相关代码:
<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
}
一切都运行良好,但我只想学习如何在XAML中设置DataContext,而不是在代码中设置。