WPF

2012-10-20 15 views
7

में ListView के चेक किए गए पंक्ति मान कैसे प्राप्त करें मेरे पास CheckBox के साथ WPF अनुप्रयोग में ListView है।WPF

मैं एक WPF सूची में सभी की जांच की गई पंक्तियों के मूल्यों को बचाने के लिए चाहते हैं ...

मैं यह कैसे प्राप्त कर सकते हैं?

मेरे ListView

<ListView x:Name="listViewChapter" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" BorderThickness="0" SelectionMode="Single" Height="100" Margin="22,234,17,28" Grid.Row="1"> 
    <ListView.ItemTemplate> 
      <DataTemplate> 
       <StackPanel Orientation="Horizontal" HorizontalAlignment="Left" VerticalAlignment="Center" > 
        <Label Name="lblChapterID" VerticalAlignment="Center" Margin="0" Content="{Binding ChapterID}" Visibility="Hidden" /> 
        <CheckBox Name="chkChapterTitle" VerticalAlignment="Center" Margin="0,0,0,0" Content="{Binding ChapterTittle}" Checked="chkChapterTitle_Checked" /> 
       </StackPanel> 
      </DataTemplate> 
    </ListView.ItemTemplate> 
</ListView> 

उत्तर

6

आप ListViewItem के IsSelected पर IsChecked संपत्ति को सीधे बांध सकते हैं। तत्व से जुड़ने के लिए RelativeSource का उपयोग करें।

IsChecked="{Binding RelativeSource={RelativeSource AncestorType=ListViewItem},Path=IsSelected}" 

अब अगर आप ListView के लिए SelectionMode=Multiple उपयोग करते हैं, आप चेक किए गए आइटम सीधे SelectedItems का उपयोग कर खींच सकते हैं।

var chapters = new List<Chapter>(); 
foreach (var item in listViewChapter.SelectedItems) 
    users.Add((Chapter)item); 
+0

मैं जोड़ लिया है IsChecked = "{बाइंडिंग RelativeSource = {RelativeSource AncestorType = ListViewItem}, पथ = IsSelected}" .. ListView में अब कैसे मैं पंक्तियों मूल्यों .. –

+0

से जांच करा सकता चेकबॉक्स में यह जोड़ने के बाद केवल सिंगल चेकबॉक्स चेक किया गया है, मैं बहुभाषी चेकबॉक्स चाहता हूं .... –

0

आप अपने WPF आवेदन के लिए MVVM pattern, और if you're going to use MVVM then you'll want an MVVM framework उपयोग करने पर विचार करना चाहिए।

फिर, यह एक प्रकार का निर्माण करने का एक मामला होगा जो आपके डेटाबेस ऑब्जेक्ट (उदा। Book) का प्रतिनिधित्व करता है, उसके बाद आपके दृश्य मॉडल (उदा। ObservableCollection<Book> Books) पर इस प्रकार का संग्रह होता है।

फिर आप Selected बूलियन प्रॉपर्टी को उदाहरण के लिए अपने Book पर चेकबॉक्स के IsChecked पर अपनी सूचीबॉक्स आइटम टेम्पलेट में टाइप करें।

<CheckBox IsChecked="{Binding Selected}" /> 

आप गुण विशुद्ध रूप से यूआई (Selected) के लिए इस्तेमाल किया के साथ अपने डोमेन वस्तु (Book) polute ताकि आप एक BookViewModel प्रकार है जो प्रयोजनों के लिए विशुद्ध रूप से Book प्रकार बढाती है और वस्तु को नया स्वरूप दे बना सकते हैं नहीं चाहते हो सकता है दृश्य का

संबंधित मुद्दे

 संबंधित मुद्दे