微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Silverlight – 在XAML中而不是在构造函数中设置DataContext?

我如何设置DataContext在我的网格在XAML,而不是在构造函数

这里是如何在构造函数(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
        }

它一切正常,但我只是想学习如何设置DataContext在XAML,而不是在代码

解决方法

克里斯给的答案很好。
我已经测试,它为我工作。
您可以在XAML(在UserControl.Resources中)和
然后将数据文本绑定到静态资源。

加载中,


<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>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐