如何将我的 ListView 绑定转换为 x:Bind?
How to convert my ListView binding to x:Bind?
假设我在我的应用程序中指定了以下示例数据源:
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}" />
如果您想使用 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。
从 UsersPage.xaml
:
的代码隐藏中公开 SampleUsers
public SampleUsers SampleUsers => new SampleUsers();
使用 XAML 中的 {x:Bind}
绑定到它:
<ListView ItemsSource="{x:Bind SampleUsers}" />
{x:Bind}
不使用 DataContext
作为默认源 — 相反,它使用 official docs 中所述的页面或用户控件本身。另请注意,默认模式是 OneTime
,假设您在运行时不重置源 属性,在这种情况下完全没问题。
假设我在我的应用程序中指定了以下示例数据源:
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}" />
如果您想使用 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。
从
的代码隐藏中公开UsersPage.xaml
:SampleUsers
public SampleUsers SampleUsers => new SampleUsers();
使用 XAML 中的
{x:Bind}
绑定到它:<ListView ItemsSource="{x:Bind SampleUsers}" />
{x:Bind}
不使用 DataContext
作为默认源 — 相反,它使用 official docs 中所述的页面或用户控件本身。另请注意,默认模式是 OneTime
,假设您在运行时不重置源 属性,在这种情况下完全没问题。