【发布时间】:2018-02-21 17:34:34
【问题描述】:
我正在使用 xamarin.forms 中的 picker 字段进行简单的 mvvm 绑定。我正在关注本指南xamarin guide setting a picker's bindings
于是我做了一个模型:
public class Operation
{
public int Number { get; set; }
public string Name { get; set; }
}
一个视图模型:
private List<Operation> _operations;
public List<Operation> Operations
{
get { return _operations; }
set
{
_operations = value;
OnPropertyChanged();
}
}
和视图:
<Picker
ItemsSource="{Binding Operations}"
ItemDisplayBinding="{Binding Number}"
SelectedItem = "{Binding SelectedOperation}"/>
<Entry x:Name="HelpEntry"
Text="{Binding SelectedOperation.Name}" />
在 Pickers 列表中项目显示正确,但是当我选择项目编号时,不显示条目内的绑定。
怀疑是,我做错了什么?
顺便说一句.. 我这样做是因为我需要通过使用 HelpEntry.Text 在我的代码隐藏部分中获得一个选定的 Operation's Name 作为变量。这不是最聪明的方法,你有更好的主意吗?
任何帮助将不胜感激。
【问题讨论】:
-
首先使用
ObservableCollection而不是List。SelectedOperation的setter是否调用OnPropertyChange方法? -
.. 我什至没有在视图模型中创建变量。现在一切正常。这将被接受的答案。谢谢亚历克斯!
标签: c# xamarin mvvm binding xamarin.forms