2016-12-16 69 views
1

我使用template10創建了一個新項目,我正在使用一個簡單的窗體:我從一個遠程服務器中加載一個項目列表,並選擇列表後的一個項目被加載。
我嘗試設置的SelectedValue的SelectedItem OT 的SelectedIndex,但被示出的形式。當列表框顯示未選擇的。
我錯過了什麼嗎?無法設置組合框選定的項目打開一個視圖

這是XAML

 <ComboBox x:Name="voceSpesaCb" Margin="16,16,0,0" 
      RelativePanel.AlignLeftWith="parameterResizer" 
      RelativePanel.Below="voceSpesaTextBlock" 
      DisplayMemberPath="Descrizione" 
      SelectedValue="{x:Bind ViewModel.VoceCorrente, Converter={StaticResource XConverter}, Mode=TwoWay}" 
      ItemsSource="{x:Bind ViewModel.Voci, Converter={StaticResource XConverter}}" 
      HorizontalAlignment="Stretch" VerticalAlignment="Stretch" /> 

這是屬性的setter代碼

 Voci = await vociSpesaTable.OrderBy(vs => vs.Descrizione).ToListAsync(); 
     VoceCorrente = Voci.FirstOrDefault(vs => vs.VoceSpesaNo == Item.VoceSpesaNo); 

還有就是調用RaisePropertyChanged

+0

顯示您正在使用的代碼。如果你想選擇一個特定的值,那麼每一個值都可以工作(只要你有正確的代碼來選擇使用所選擇的方法) – Takarii

回答

1

看起來loike我發現這個問題。由於我完全不理解的原因,我必須爲ItemsSource屬性設置Mode = TwoWay。

  <ComboBox x:Name="voceSpesaCb" Margin="16,16,0,0" 
       RelativePanel.AlignLeftWith="parameterResizer" 
       RelativePanel.Below="voceSpesaTextBlock" 
       DisplayMemberPath="Descrizione" 
       SelectedValue="{x:Bind ViewModel.VoceCorrente, Converter={StaticResource XConverter}, Mode=TwoWay}" 
       ItemsSource="{x:Bind ViewModel.Voci, Converter={StaticResource XConverter}, Mode=TwoWay}" 
       HorizontalAlignment="Stretch" VerticalAlignment="Stretch" 
         /> 

這樣,它的工作原理

+0

有3種綁定模式。 'OneTime'將在XAML初始化時讀取視圖模型,這是非常高性能的,但如果您的視圖模型數據尚未加載,則可能會出現問題。 「OneWay」將在初始化時讀取視圖模型,並將設置事件以偵聽視圖模型更改。它們都不會寫入視圖模型。 'TwoWay'就像'OneWay' PLUS一樣,當XAML中的值發生變化時,它將寫回更新值給視圖模型屬性設置器。 'TwoWay'是更新視圖模型的唯一方法。 http://blog.jerrynixon.com/2012/10/xaml-binding-basics-101.html –

相關問題