【发布时间】:2010-10-11 01:05:03
【问题描述】:
如何在 XAML 中而不是在构造函数中设置我的 Grid 上的 DataContext?
这是我在构造函数中的做法(LayoutRoot 是 XAML 中定义的 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,而不是在代码中。
【问题讨论】: