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>
我有一个简单的 UWP 页面;在页面 code-behind:
中有一个 public ObservableCollectionpublic 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>