UWP 以声明方式绑定到 ObservableCollection

UWP Bind to ObservableCollection declaratively

我有一个简单的 UWP 页面;在页面 code-behind:

中有一个 public ObservableCollection

public ObservableCollection<Book> MyObservableColl{ get; } = new ObservableCollection<Book>();

(注意 collection 由单个项目组成) 我想绑定到 collection;这是我尝试过的:

            <StackPanel x:Name="stackPanel"
                        Grid.Row="2"
                        Margin="50"
                        DataContext="{x:Bind MyObservableColl, Mode=OneWay}">
                <TextBox x:Name="txtTitle"
                         TextWrapping="Wrap"
                         Text="{x:Bind Title, Mode=OneWay}" />
            </StackPanel>

visual studio 设计师抱怨“找不到 属性 标题”。 感谢任何帮助将我的文本框绑定到 Observable Collection.

the property Title was not found

txtTitle TextBox 无法直接访问 MyObservableColl 集合中的 Book item,您需要将 txtTitle 放在 items 控件的 ItemTemplate 下。

例如

<ListView ItemsSource="{x:Bind MyObservableColl, Mode=OneWay}">
    <ListView.ItemTemplate>
        <DataTemplate x:DataType="local:Book">
            <StackPanel>
                <TextBox Text="{x:Bind Title}" />
            </StackPanel>
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>

更多信息请参考列表视图document

更新

单品请参考此xaml

<StackPanel
        x:Name="stackPanel"
        Grid.Row="2"
        Margin="50"
        DataContext="{x:Bind MyObservableColl[0], Mode=OneWay}">
        <TextBox Text="{Binding Title}"/>
    </StackPanel>