2017-12-25 2 views
-1

Ich muss eine ID (x:Uid="identifier") zum letzten und ersten Listbox Element hinzufügen. Meine Listbox-Einträge werden über eine Datenquelle wie folgt befüllt:Fügen Sie eine ID zu ListBox item

<ListBox x:Name="listbox1" Grid.Row="1" BorderThickness="0" 
    ItemsSource="{SomeBinding}"> 

Konnte es in XAML getan werden?

+0

Sie können mit' ItemsSource' Bindung Quell-ID –

+0

Entschuldigung, ich verstehe nicht - Elemente Quelle ist nur eine verbindliche "Zuordnung", und wie ist es möglich zu bestimmen, was genau Element von ItemsSource ist der erste oder der letzte? – zohak

+0

'Listbox' bindet Item nur in Item-Reihenfolge –

Antwort

0

Erben von ListBox Ihre benutzerdefinierte Klasse. Override protected method .. nicht ganz erinnern, was war der Name ... etwas über .GetContainerFor(...). Von dort können Sie new ListBoxItem() zurückgeben und richten Sie es nach Belieben ein.

1

Ich bin nicht sicher, wie Sie es implementieren möchten, aber hier ist eine Art Lösung.

Ich dachte, Sie brauchen nur IDs der ersten und letzten Elemente in Ihrer ListBox. Nicht sicher, dass Sie es in Xaml ohne viel Arbeit und Kopfschmerzen tun können. Sie haben es bereits an ein Objekt gebunden. Sagen wir:

XAML:

<ListBox x:Name="listbox1" ItemsSource="{Binding Items}"/> 

-Code hinter:

private ObservableCollection<Item> _Items; 
public ObservableCollection<Item> Items 
{ 
    get { return _Items; } 
    set { _Items = value; } 
} 

So konnte man nur get ‚em wie folgt aus:

private void Button_Click(object sender, RoutedEventArgs e) 
{ 
    var firstItem = Items[0]; 
    var lastItem = Items[Items.Count - 1]; 
} 
+0

Ja, ich denke, ich könnte sie in ViewModel bekommen, aber ich denke nicht, dass diese Items ein Uid-Feld haben. – zohak

Verwandte Themen