コンストラクターではなく、XAML でグリッドに DataContext を設定するにはどうすればよいですか?
コンストラクターでそれを行う方法は次のとおりです (LayoutRoot は XAML で定義された XAML グリッドです)。
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 を設定する方法を学びたいだけです。