2013-01-17 50 views
1

我正在使用WPF和MVVM Light框架。如何使用MVVM Light恢復對組合框的選擇

我想知道如何恢復組合框上的選擇。

例如:

  • 缺省選擇爲「文本1」
  • 當用戶選擇「文本2」中的組合框,我顯示一個對話框(是/否),以確認該操作
  • 如果用戶單擊「否」,我想恢復的值設置爲「文本1」

到目前爲止,我的XAML是這樣的:

ComboBox ItemsSource="{Binding SourceData}" SelectedItem="{Binding SelectedSourceData,Mode=TwoWay}" 

我結合SourceData在我MainViewModel.cs定義爲:

public ObservableCollection<TextItem> SourceData { get; set; } 

我沒有爲我的組合框的名稱。有沒有辦法使用綁定方法恢復選擇?

任何幫助將不勝感激。

謝謝。

回答

1

(未測試)

在視圖模型的設置您的綁定屬性,調用確認對話框您設置的值內部之前。只有在答案爲是時才設置私人值,然後在任一情況下提升已更改的屬性。

這仍然是可測試的(如果您有確認對話框的可模擬接口)。

0

我只是通過這個去與一個列表視圖

this link

你必須使用eventtocommand綁定到一箇中繼命令組合框的selecteditemchanged事件。選擇將改變,但您可以驗證您的邏輯並將其更改回來,如果您需要

0

ICollectionView是最常用的選項。
MoveCurrentToPrevious()將選區從當前選區移到上一區,這就是您要找的。所以,將它綁定到您的ComboBox並且只需要它就可以使用! for more info in MSDN希望它有幫助。

0

我有相同的問題,UI線程的原因和招標的方式。檢查此鏈接: SelectedItem on ComboBox

示例中的結構使用後面的代碼,但MVVM完全相同。

相關問題