Entwickler-Ecke
WPF / Silverlight - WPF ListView: Names des ausgewählten Eintrags
rapgru - Mi 28.01.15 19:57
Titel: WPF ListView: Names des ausgewählten Eintrags
Heyho Leute,
Ich weiß nicht ob ich so wirklich so unfähig bin, aber ich komme nicht dahinter wie ich den Namen (nicht den Content) des SelectedItem herrausbekomme.
Danke schon im Vorhinein :D
jfheins - Mi 28.01.15 22:01
Üblicherweise läuft das ja so, dass man ein ViewModel hat.
Und das ViewModel hat dann eine ObservableCollection<T> Items und eine Property T CurrentItem. Letztere wird dann per TwoWay Binding an die Listbox oder die Listview (an die Property SelectedItem) geknüpft.
Im ViewModel greifst du dann einfach immer auf diese Property zu.
Soweit zum üblichen Vorgehen. Da du keinen Code gepostet hast, und auch sonst nur wenige Details, kann ich leider nicht erahnen, was du anders machst :nixweiss:
Christoph1972 - Mi 28.01.15 22:12
Den Namen von einem TreeViewItem kannst du so ermitteln:
C#-Quelltext
1: 2: 3: 4:
| private void treeViewTest_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs<object> e) { string name = ((TreeViewItem)treeViewTest.ItemContainerGenerator.ContainerFromItem(e.NewValue)).Name; } |
Vorausgesetzt du hast den Namen manuell zugewiesen. Eigentlich ist der Content doch viel interessanter als das Item ansich, oder? Kann aber auch gut sein das du etwas anderes meinst....
rapgru - Do 29.01.15 15:59
Naja ich entwickle ein Kontoverwaltungsprogramm (ähnlich wie Microsoft Money, welches jetzt nicht mehr funktioniert) nach eigenen Bedürfnissen und habe dafür eine ListView, wo man verschiedene Konten anlegen kann. Ich habe mich entschieden die infos von jedem neuen ListViewItem in eine Textdatei zu schreiben. Dem entsprechend habe ich jetzt mit Dateipfaden, etc. mich herumzuschlagen.
Danke für eure Antworten, wede das ganze wahrscheinlich mit ner Datenbank machen
LG rapgru
rapgru - Do 29.01.15 17:20
Hab das ganze jetzt auf Database aufgebaut und benötige nun den Content eines Item.
Muss ich den SelectedItem nach : splitten oder gibts da was viel einfacheres?
Th69 - Do 29.01.15 19:58
Du mußt
SelectedItem nur in den richtigen Datentyp wandeln ('casten'):
C#-Quelltext
1: 2: 3: 4: 5:
| var item = listView.SelectedItem as MyDataType; if (item != null) { } |
Besser wäre aber die Vorgehensweise mittels MVVM und DataBinding (so wie jfheins schon vorgeschlagen hat), dann würdest du im ViewModel direkt auf die Eigenschaft zugreifen können.
rapgru - Do 29.01.15 21:56
Hey,
hab mein Problem gelöst, hab's mit String.Remove gemacht (also gepfuscht :D). Werd das mal auf die professionelle Art versuchen. Danke für eure Antworten.
Mit Datenbanken geht alles iwie viel einfacher :D
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!