Mat*_*lay 30 silverlight datacontext
如何在XAML中的Grid上设置DataContext,而不是在构造函数中?
以下是我在构造函数中的操作方法(LayoutRoot是XAML中定义的XAML Grid):
this.LayoutRoot.DataContext = this.HPVM;
Run Code Online (Sandbox Code Playgroud)
我宁愿在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>
...
Run Code Online (Sandbox Code Playgroud)
这是我的构造函数,其中当前设置了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
}
Run Code Online (Sandbox Code Playgroud)
一切正常,但我只想学习如何在XAML中设置DataContext,而不是在代码中.
Kli*_*ger 23
克里斯给出的答案很好.我已经测试过,它对我有用.您可以在XAML中实例化您的类(在UserControl.Resources中),然后将datacontext绑定到静态资源.
关注代码:
<UserControl ...>
<UserControl.Resources>
<myNS:MyClass x:Name="TheContext" x:Key="TheContext"></myNS:MyClass>
</UserControl.Resources>
<Grid x:Name="LayoutRoot" Background="White" DataContext="{StaticResource TheContext}" >
<TextBlock Text="{Binding Path=Field1}">
</TextBlock>
</Grid>
</UserControl>
Chu*_*Tey 10
以下怪物适用于Silverlight 4
<UserControl
DataContext="{Binding HPVM, RelativeSource={RelativeSource Self}}">
Run Code Online (Sandbox Code Playgroud)
小智 6
<UserControl.DataContext>
<vm:ThisUCViewModel />
</UserControl.DataContext>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
59044 次 |
| 最近记录: |