【发布时间】:2020-04-22 10:37:10
【问题描述】:
我有一个相当简单的绑定(使用{Binding},而不是{x:Bind})但不起作用:
<ListView
ItemsSource="{x:Bind ViewModel.Items, Mode=OneWay}">
<ListView.ItemTemplate>
<DataTemplate x:DataType="local:Item">
<StackPanel>
<TextBlock Text="{Binding MyField}" />
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
它编译,但失败并显示错误消息:
错误:BindingExpression 路径错误:在“MyNamespace.Item”上找不到“MyField”属性。 BindingExpression: Path='MyField' DataItem='MyNamespace.Item';目标元素是'Windows.UI.Xaml.Controls.TextBlock'(名称='null');目标属性是“文本”(类型“字符串”)
同样的绑定也适用于x:Bind:
<TextBlock Text="{x:Bind MyField}" />
ViewModel 和项目定义
namespace MyNamespace
{
public class Item : INotifyPropertyChanged
{
public Item()
{
// ...
}
public readonly string MyField = "Foo";
// ...
}
public class MainPageViewModel : INotifyPropertyChanged
{
public MainPageViewModel()
{
// ...
}
private ItemsCollection _itemsCollection = new ItemsCollection();
public ObservableCollection<Item> Items
{
get { return _itemsCollection.Items; }
}
// ...
}
}
【问题讨论】:
标签: c# uwp windows-runtime uwp-xaml