在XAML中,如何将DataContext
绑定到整个Page's
类,以便我可以访问自己的属性?
如果我有以下XAML,则含义:
<Page
x:Class="EasyWalk.UI.DetailPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:EasyWalk.UI"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d">
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}" DataContext="{Binding RelativeSource={RelativeSource Self}}"> <!--This doesnt work-->
</Grid>
</Page>
如何将该网格绑定到XAML使用的DetailPage
(绑定到自己的类)?我希望能够在XAML中访问该类(本身)的成员。
意思是,我希望能够访问TestString
的{{1}}成员:
DetailPage
我的XAML中的某个地方是这样的:
public sealed partial class DetailPage: Page
{
private string testString;
public String TestString
{
get { return this.testString; }
}
public EWRODetailPage()
{
this.InitializeComponent();
}
}
我该如何做到这一点?
答案 0 :(得分:2)
只使用其中没有任何内容的绑定:
DataContext="{Binding }"
或者,您可以使用句点来表示Bindings中的“self”:
DataContext="{Binding .}"
MSDN页面在Binding.Path文档中记录了这两个文档。
答案 1 :(得分:1)
在代码后面设置DataContext
public sealed partial class DetailPage: Page
{
private string testString;
public String TestString
{
get { return this.testString; }
}
public EWRODetailPage()
{
this.InitializeComponent();
DataContext = this;
}
}
然后删除此行:DataContext="{Binding RelativeSource={RelativeSource Self}}"
请注意:DetailPage类没有实现INotifyPropertyChanged,因此如果更改TestString值,UI将不会更新