快速提问,是否可以使用编译绑定绑定到资源键,就像使用传统绑定一样?
即。 传统装订
<Page.Resources>
<local:DataSource x:Key="Data"/>
<CollectionViewSource x:Name="myColl" Source="{Binding Source={StaticResource Data}, Path=Colleges}" ItemsPath="Campuses" IsSourceGrouped="True"/>
</Page.Resources>
编译绑定
我尝试了,我知道它不起作用,显然它正在寻找属性&#34;数据&#34;在页面上而不是资源。
<Page.Resources>
<local:DataSource x:Key="Data"/>
<CollectionViewSource x:Name="myColl" Source="{x:Bind Data.Colleges}" ItemsPath="Campuses" IsSourceGrouped="True"/>
</Page.Resources>
还有其他方法吗?
答案 0 :(得分:1)
使用编译绑定手段,顾名思义,绑定表达式在编译时验证,因此必须强类型化。这意味着路径需要在上下文中作为属性存在,并且不会用作资源。
要使{x:Bind}起作用,请将您的DataSource声明为后面代码中的属性:
public sealed partial class MainPage : Page
{
public DataSource Data { get; set; }
public MainPage()
{
InitializeComponent();
Data = new DataSource();
}
}
然后从您的资源中删除您的数据资源,您就已经完成了。