2017-09-13 80 views
0

我正在與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! –

回答

1

您的ViewModel還應該包含SelectedOperation屬性,該屬性在其設置器中也應該調用OnPropertyChanged方法。

此外,您應該考慮使用ObservableCollection而不是List在您查看模型。