2017-12-25 2 views
-1

ID 번호 (x:Uid="identifier")을 마지막 및 첫 번째 목록 상자 항목에 추가해야합니다. 내 목록 상자 항목은 다음과 같은 데이터 소스를 통해 채워집니다.ListBox에 ID를 추가하십시오.

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

xaml에서 수행 할 수 있습니까?

+0

당신이 사용할 수있는'ItemsSource' 바인딩 소스 ID –

+0

죄송합니다, 이해가 안됩니다 - 항목 소스는 바인딩 "매핑"이며, 어떻게됩니까? ItemsSource의 정확히 어떤 요소가 처음 또는 마지막 요소인지 결정할 수 있습니까? – zohak

+0

'Listbox'는 아이템 순서로 아이템을 바인딩 할 것입니다. –

답변

0

사용자 지정 클래스 ListBox을 상속합니다. 보호 된 메서드를 재정의하십시오. 이름이 무엇인지 기억하지 못했습니다. .GetContainerFor(...)에 대한 내용입니다. 거기에서 new ListBoxItem()을 반환하고 원하는대로 설정할 수 있습니다.

1

구현 방법을 잘 모르겠지만 몇 가지 해결책이 있습니다.

ListBox의 첫 번째 항목과 마지막 항목의 ID가 필요하다고 생각했습니다. 당신이 많은 일이나 두통없이 xaml에서 그것을 할 수 있는지 확신하지 못합니다. 이미 일부 개체에 바인딩되어 있습니다.

XAML : 뒤에

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

코드 :

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

그래서 당신은 단지 그들을과 같이 얻을 수 : 의가 있다고 가정 해 봅시다

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

예, ViewModel에서 가져올 수 있다고 생각하지만,이 아이템에는 Uid 필드가 있다고 생각하지 않습니다. – zohak

관련 문제