Xamarin.Forms - 拾取器选择的项目绑定没有响应

问题描述:

我正在与xamarin.forms中的picker字段进行简单的mvvm绑定。我下面这个指南xamarin guide setting a picker's bindingsXamarin.Forms - 拾取器选择的项目绑定没有响应

所以我做了一个模型:

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}" /> 

在拾荒者列表项显示正确,但是当我选择一个项目号时,则不会显示Entry内的绑定。

问题是,我做错了什么?


顺便说..我这样做是因为我需要一个选择Operation's Name可变在我的代码隐藏部分,通过使用HelpEntry.Text。这不是一个最聪明的方式,你有更好的想法做到这一点?

任何帮助将不胜感激。

+1

首先使用'ObservableCollection'而不是'List'。 'SelectedOperation'的setter是否调用'OnPropertyChange'方法? – Alex

+0

..我甚至没有在视图模型中创建一个变量。现在一切都很完美。这将被接受的答案。谢谢Alex! –

您的ViewModel还应该包含SelectedOperation属性,该属性在其设置器中也应该调用OnPropertyChanged方法。

此外,您应该考虑使用ObservableCollection而不是List在您查看模型。