2016-07-17 89 views
0

您好我正在處理具有MVVC框架的應用程序。獲取數組中選中的複選框的值 - WPF,MVVC,c#

在我看來,我有23個複選框,每個複選框都有不同的文本。

<CheckBox IsChecked="{Binding isA}">A</CheckBox> 
<CheckBox IsChecked="{Binding isB}">B</CheckBox> 
<CheckBox IsChecked="{Binding isC}">C</CheckBox>  

等等。

在viewmodal我有以下....

public string isA 
    { 
     get { return _isA; } 
     set 
     { 
      _isA= value.ToString(); 
      RaisePropertyChanged(); 
     } 
    } 
    private string _isA; 

我如何獲得所有被選中的複選框的文本作爲一個數組?

回答

0

開始通過定義一個模型類

public class ListModel 
{ 
    public string Data { get; set; } 
    public bool IsSelected { get; set; } 
} 

然後綁定這個模型的列表ListView的的ItemsSource

List<ListModel> data = new List<ListModel>(); 

修改複選框的結合

<CheckBox Content="{Binding Data}" IsChecked="{Binding Path=IsSelected, Mode=TwoWay"/> 

那麼當你需要檢索時,你可以執行下面的linq來獲得所有選擇的字符串

IEnumerable<String> selectedData = data.Where(d => d.IsSelected).Select(d => d.Data); 

現在你都該在UI中選擇的現場selectedData數據