0

假设我在我的应用程序中指定了以下示例数据源:

应用程序.xaml:

<sampleData:SampleUsers x:Key="SampleUsers"
        d:IsDataSource="True" />

如何将以下两个绑定转换为它们的 x:Bind 变体???

用户页面.xaml。

xmlns:sampleData="using:MyApp.SampleData.SampleUsers"
.
.
.
<ListView DataContext="{Binding Source={StaticResource SampleUsers}}"
        ItemsSource="{Binding Users, Mode=OneWay}" />
4

2 回答 2

2
  1. SampleUsers以下代码隐藏UsersPage.xaml

    public SampleUsers SampleUsers => new SampleUsers();
    
  2. {x:Bind}在 XAML 中使用绑定到它:

    <ListView ItemsSource="{x:Bind SampleUsers}" />
    

{x:Bind}不使用DataContext作为默认源 - 相反,它使用页面或用户控件本身,如官方文档中所述。另请注意,默认模式是OneTime,在这种情况下,假设您没有在运行时重置源属性,这非常好。

于 2019-03-15T14:07:20.167 回答
1

如果你想使用 x:bind,你可以为 DataTemplate 绑定ItemsSource然后声明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>

更新

您可以SampleUsers在 xaml 页面资源或代码后面定义。

<Page.Resources>
    <sampleData:SampleUsers x:Key="SampleUsers"/>
</Page.Resources>

有关详细信息,请参阅此文档

于 2019-03-15T02:23:12.857 回答