我如何设置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中)和
然后将数据文本绑定到静态资源。
我已经测试,它为我工作。
您可以在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] 举报,一经查实,本站将立刻删除。