किसी ऑब्जेक्ट के साथ ListView आइटम को टाई करने का सबसे अच्छा तरीका क्या है जब मैं आइटम को एक सूचीदृश्य में दूसरे स्थान पर ले जाता हूं तो मैं अभी भी यह निर्दिष्ट करने में सक्षम हूं कि यह किस ऑब्जेक्ट को सौंपा गया है। उदाहरण के लिए, मेरे पास Cards
ऑब्जेक्ट है। ये सभी allCards
ListView
में सूचीबद्ध हैं। मेरे पास एक और selectedCards
ListView
और एक बटन है जो चयनित आइटम को एक सूचीदृश्य से दूसरे में ले जाता है। जब मैंने अपना चयन किया तो मुझे Card
ऑब्जेक्ट्स की सूची प्राप्त करने की आवश्यकता है जो selectedCards
ListView में स्थानांतरित हो गया था।सी # टाई सूची वस्तुओं के साथ आइटम देखें
उत्तर
@ CharithJ के जवाब पर विस्तार करने के लिए, यह कैसे आप टैग संपत्ति का प्रयोग करेंगे है ।
मुझे पता है कि यह जवाब पुराना है, लेकिन यह *** बिल्कुल *** था जो मैं ढूंढ रहा था। मैं 'टैग' संपत्ति को कभी नहीं जानता था, न ही उसने क्या किया या यह क्या था, इसलिए एक गुच्छा धन्यवाद: डी – Nolonar
पहला तरीका।
ऑब्जेक्ट को ListViewItem की टैग प्रॉपर्टी पर असाइन करें। चयनित वस्तुओं के टैग प्राप्त करें।
दूसरा रास्ता।
सूची में अदृश्य उप-चिह्न जोड़ें देखें जिसमें कार्ड ऑब्जेक्ट की आईडी है। फिर चयनित आइटम आईडी का उपयोग करके कार्ड पाएं।
आप देखे जाने योग्य संग्रह का उपयोग कर सकते हैं, और अपने Card
कक्षा के लिए डेटामैप्लेट बना सकते हैं। फिर आप संग्रह में अपने ListView
को बांधें और यह आपके लिए सभी काम करता है। जब आप ObservableCollection
पर कोई आइटम जोड़ते हैं तो ListView
स्वचालित रूप से फिर से चला जाता है।
ListView allCardsListView = new ListView();
ListView selectedCardsListView = new ListView();
List<Card> allCards = new List<Card>();
List<Card> selectedCards = new List<Card>();
public Form1()
{
InitializeComponent();
foreach (Card selectedCard in selectedCards)
{
ListViewItem item = new ListViewItem(selectedCard.Name);
item.Tag = selectedCard;
selectedCardsListView.Items.Add(item);
}
foreach (Card card in allCards)
{
ListViewItem item = new ListViewItem(card.Name);
item.Tag = card;
allCardsListView.Items.Add(new ListViewItem(card.Name));
}
Button button = new Button();
button.Click += new EventHandler(MoveSelectedClick);
}
void MoveSelectedClick(object sender, EventArgs e)
{
foreach (ListViewItem item in allCardsListView.SelectedItems)
{
Card card = (Card) item.Tag;
//Do whatever with the card
}
}
जाहिर है आप अपने खुद के कोड के लिए यह अनुकूल करने के लिए की आवश्यकता होगी, लेकिन यह आपके लिए प्रारंभ करने चाहिए:
using System.Collections.ObjectModel;
<ListView Name="allCardsView" Source="{Binding}">
<ListView.ItemTemplate>
<DataTemplate DataType="{x:Type yourXmlns:Card}">
//Your template here
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
<ListView Name="selectedCardsView" Source="{Binding}">
<ListView.ItemTemplate>
<DataTemplate DataType="{x:Type yourXmlns:Card}">
//Your template here
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
ObservableCollection<Card> allCards = new ObservableCollection<Card>();
ObservableCollection<Card> selectedCards = new ObservableCollection<Card>();
allCardsView.DataContext = allCards;
selectedCardsView.DataContext = selectedCards;
public void ButtonClickHandler(object sender, EventArgs e)
{
if (allCardsView.SelectedItem != null &&
!selectedCards.Contains(allCardsView.SelectedItem))
{
selectedCards.Add(allCardsView.SelectedItem);
}
}
क्षमा करें, मैं यह कहना भूल गया कि WinForms का उपयोग कर रहा हूँ। – hs2d
बेहतर उपयोग ObjectListView। यह सूची दृश्य के साथ वस्तुओं को जोड़ने और उपयोग करने का एक सही तरीका है। हॉट ट्रैकिंग जैसी सुविधाओं और ड्रैग और ड्रॉप करने में आसान सुविधाओं के साथ आपकी सूचीदृश्य में हेरफेर करने के लिए बहुत आसान हो जाता है।
- 1. सूची देखें गतिशील जोड़ें आइटम
- 2. एक सूची बॉक्स में देखें आइटम
- 3. एंड्रॉइड सूची देखें निश्चित ऊंचाई आइटम
- 4. tinymce और सूची-वस्तुओं के साथ समस्या
- 5. विभिन्न वस्तुओं की एक और सूची के साथ तुलना करके वस्तुओं की एक सूची फ़िल्टर
- 6. ऑर्डर सूची की सूची आइटम के भीतर सूची सूची आइटम?
- 7. रनटाइम पर कलर आइटम देखें
- 8. "आइटम सूची" या "आइटम सूची"
- 9. सीएसएस/एचटीएमएल - क्षैतिज सूची - सूची आइटम के बीच इस रहस्य अंतर को हटा दें? (तस्वीर देखें)
- 10. LongListMultiSlector सूची आइटम के साथ चेकबॉक्स संरेखित
- 11. सी #: सूची की वस्तुओं का अपरिवर्तनीय दृश्य?
- 12. एंड्रॉइड में उलटा सूची देखें?
- 13. सूची बॉक्स आइटम आइटम आइटम
- 14. सूची देखें सी # रहने का चयन
- 15. सूची में मानचित्र दृश्य देखें
- 16. सी # एक सूची में विभिन्न वर्ग वस्तुओं
- 17. एंड्रॉइड: संपूर्ण सूची दृश्य फोकस पर रंग बदलता है, न सिर्फ सूची आइटम देखें
- 18. कुछ सूची दृश्य आइटम
- 19. एंड्रॉइड सूची सूची दृश्य दृश्य के बिना सामग्री के लिए पैडिंग देखें?
- 20. कोड सूची में देखें पंक्ति ऊंचाई देखें
- 21. सूची आइटम
- 22. एंड्रॉइड लिस्ट व्यू चेकबॉक्स के साथ देखें:
- 23. सी # combobox वस्तुओं की सूची के लिए बाध्यकारी
- 24. एएसपी.Net सूची देखें EmptyItemTemplate
- 25. शीर्षक, छवि और पाठ के साथ सूची देखें?
- 26. सूची दृश्य आइटम
- 27. सी # - सूची से आइटम को कैसे हटाएं?
- 28. चुनिंदा वस्तुओं के साथ पारदर्शी WPF ListBox
- 29. टाई :: हैंडल :: सीएसवी
- 30. सी # ट्रिविया गेम: टाई के मामले में क्या करना है?
यह प्रश्न वास्तव में स्पष्ट नहीं है। यदि आप उन ऑब्जेक्ट्स को 'चयनित कार्ड' में ले जाते हैं, तो क्या वह सूची नहीं है जिसे आप चाहते हैं? –
@Steven: ListView में केवल कार्ड के नाम हैं .. – hs2d
बस थोड़ा सा सुझाव, यदि आप सभी कार्ड्स * को उपलब्ध कार्ड * का नाम बदल देंगे तो यह क्लीनर होगा ... –