假设我在应用中指定了以下示例数据源:
App.xaml:
<sampleData:SampleUsers x:Key="SampleUsers"
d:IsDataSource="True" />
如何将以下两个绑定转换为它们的x:Bind变量?
UsersPage.xaml。
xmlns:sampleData="using:MyApp.SampleData.SampleUsers"
.
.
.
<ListView DataContext="{Binding Source={StaticResource SampleUsers}}"
ItemsSource="{Binding Users, Mode=OneWay}" />
答案 0 :(得分:2)
从SampleUsers
的隐藏代码中暴露UsersPage.xaml
:
public SampleUsers SampleUsers => new SampleUsers();
在XAML中使用{x:Bind}
对其进行绑定:
<ListView ItemsSource="{x:Bind SampleUsers}" />
{x:Bind}
并不使用DataContext
作为默认源,而是使用official docs中所述的页面或用户控件本身。另请注意,默认模式为OneTime
,在这种情况下,假设您在运行时未重置source属性,这是完全可以的。
答案 1 :(得分:1)
如果要使用x:bind,可以绑定ItemsSource
,然后为DataTemplate声明x x:DataType
,如下所示。
<ListView ItemsSource="{x:Bind SampleUsers.Users, Mode=OneWay}" >
<ListView.ItemTemplate>
<DataTemplate x:DataType="local:User">
<TextBlock Text="{x:Bind Name}"
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
更新
您可以在xaml页面资源或后面的代码中定义SampleUsers
。
<Page.Resources>
<sampleData:SampleUsers x:Key="SampleUsers"/>
</Page.Resources>
有关更多详细信息,请参阅此document。