Здарвствуйте!
Предположим есть шаблон, который отображает коллекцию объектов в ListBox.
Как переопределить шаблон ListBoxItem, чтобы было чтото типа:
<StackPanel Orientation="Horizontal">
<Label Content="{Binding Хочу чтобы здесь была позиция элемента в листбоксе}"/>
<Label Content={Binding Title}/>
</StackPanel>
Ну вообщем чтобы получилось что-то такое:
1Яблоко
2ГрушаКакаято
3Дынька
...
10Арбузик
С уважением, Иван
Здравствуйте, WSN, Вы писали:
WSN>Здарвствуйте!
WSN>Предположим есть шаблон, который отображает коллекцию объектов в ListBox.
WSN>Как переопределить шаблон ListBoxItem, чтобы было чтото типа:
WSN>WSN><StackPanel Orientation="Horizontal">
WSN><Label Content="{Binding Хочу чтобы здесь была позиция элемента в листбоксе}"/>
WSN><Label Content={Binding Title}/>
WSN></StackPanel>
WSN>
WSN>Ну вообщем чтобы получилось что-то такое:
WSN>WSN>1Яблоко
WSN>2ГрушаКакаято
WSN>3Дынька
WSN>...
WSN>10Арбузик
WSN>
WSN>С уважением, Иван
Только с использованием конвертеров получится.
Здравствуйте, Codechanger, Вы писали:
C>Только с использованием конвертеров получится.
А что на что конвертировать и что в конвертор в качестве исходных данных для конвертации передавать?
Здравствуйте, WSN, Вы писали:
WSN>Здравствуйте, Codechanger, Вы писали:
C>>Только с использованием конвертеров получится.
WSN>А что на что конвертировать и что в конвертор в качестве исходных данных для конвертации передавать?
Исходные данные — текущий ListBoxItem.
А дальше как-то так:
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
ListBoxItem item = (ListBoxItem)value;
ListBox listBox =
ItemsControl.ItemsControlFromItemContainer(item) as ListBox;
// Get the index of a ListViewItem
int index =
listView.ItemContainerGenerator.IndexFromContainer(item);
return index;
}
Здравствуйте, Codechanger, Вы писали:
C>Здравствуйте, WSN, Вы писали:
WSN>>Здравствуйте, Codechanger, Вы писали:
C>>>Только с использованием конвертеров получится.
WSN>>А что на что конвертировать и что в конвертор в качестве исходных данных для конвертации передавать?
C>Исходные данные — текущий ListBoxItem.
C>А дальше как-то так:
C>C> public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
C> {
C> ListBoxItem item = (ListBoxItem)value;
C> ListBox listBox =
C> ItemsControl.ItemsControlFromItemContainer(item) as ListBox;
C> // Get the index of a ListViewItem
C> int index =
C> listView.ItemContainerGenerator.IndexFromContainer(item);
C> return index;
C> }
C>
Пасиб, попробую.
Здравствуйте, WSN, Вы писали:
WSN><Label Content="{Binding Хочу чтобы здесь была позиция элемента в листбоксе}"/>
<Label Content="{Binding ElementName=listBoxName, Path=SelectedIndex}"/>
Но нумерация будет с 0. Если нужно с 1, то необходимо добавить конвертер. Но в этом случае он будет тривиальным:
...
public object Convert(object value, Type targetType, object parameter, CultureInfo culture) {
return (int)value + 1;
}
...