2010-03-24 25 views
9

अगर मैं "इसके साथ बिल्ली" कहूंगा, तो मैं सिर्फ मेरी सूची दृश्य को चयनमोड = "एकाधिक" नाम से दे सकता हूं, और सभी चयनित वस्तुओं को आसानी से प्राप्त करने में सक्षम हूं। लेकिन मैं जितना संभव हो सके एमवीवीएम से चिपकने की कोशिश कर रहा हूं, और मैं किसी भी तरह से एक अवलोकन करने योग्य कोलेक्ट करना चाहता हूं जो प्रत्येक चयनित आइटम के लिए नाम कॉलम से मूल्य रखता है। दुनिया में आप ऐसा कैसे करते हैं? एकल चयन सरल है, लेकिन मेरे वर्तमान WPF/MVVM ज्ञान के साथ बहु चयन समाधान मेरे लिए स्पष्ट नहीं है।ListView + एकाधिक चयन + एमवीवीएम =?

I read this question on SO, और जब यह मुझे कुछ अच्छी अंतर्दृष्टि देता है, मुझे नहीं पता कि पंक्ति में आवश्यक बाध्यकारी कैसे जोड़ना है, क्योंकि मैं एक सूची दृश्य के रूप में एक सूची दृश्य का उपयोग कर रहा हूं, एक सूची बॉक्स नहीं।

<ListView DockPanel.Dock="Top" ItemsSource="{Binding ClientPreview}" SelectionMode="Multiple"> 
    <ListView.View> 
     <GridView AllowsColumnReorder="False"> 
      <GridViewColumn Header="Name"> 
       <GridViewColumn.CellTemplate> 
        <DataTemplate> 
         <TextBlock Text="{Binding Path=Name}" /> 
        </DataTemplate> 
       </GridViewColumn.CellTemplate> 
      </GridViewColumn> 
      <GridViewColumn Header="Address"> 
       <GridViewColumn.CellTemplate> 
        <DataTemplate> 
         <TextBlock Text="{Binding Path=Address}" /> 
        </DataTemplate> 
       </GridViewColumn.CellTemplate> 
      </GridViewColumn> 
     </GridView> 
    </ListView.View> 
</ListView> 

यह करना सही बात की तरह लगता है ObservableCollection मैं करने के लिए डेटा बाइंडिंग कर रहा हूँ में संग्रहीत प्रत्येक वस्तु के लिए प्रत्येक पंक्ति के IsSelected संपत्ति DataBind के लिए है:

यहाँ की तरह मेरे XAML मूल रूप से दिखता है। मैंने अभी यह नहीं पता है कि यह कैसे करें। ListView पर

उत्तर

11

ItemContainerstyle लिखें और एक सेटर डाल अपने ViewModel 'IsSelected' संपत्ति

<Style TargetType="{x:Type ListViewItem}"> 
    <Setter Property="IsSelected" Value="{Binding IsSelected,Mode=OneWayToSource}"/> 
+0

आह के लिए बाध्य करने के लिए! जब यह आपको रजत प्लेटर पर सौंप दिया जाता है तो यह समझ में आता है। धन्यवाद एक गुच्छा, जॉबी। मैं आज रात एक भंवर दे दूंगा और एक बार पुष्टि करने के बाद इसे उत्तर के रूप में चिह्नित करूंगा। – Dave

+0

जॉबी, जिसने पूरी तरह से चाल की, धन्यवाद !!! – Dave

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