Я создаю поведение для ItemsControl с целью выбора элемента, на который я нажимаю (и добавления его в список выбранных элементов).
Таким образом, легко получить все элементы:
hours = AssociatedObject.ItemsSource as List<Hour>;
и, конечно, я могу написать часы [0] .Selected = true;
, но потом у меня есть событие мыши, что я попытался написать что-то вроде этого:
void AssociatedObject_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
hour = sender as Hour;
}
проблема в том, что он не работает так, как я ожидал ... отправитель - это не час, это ItemsControl.
и у меня нет никаких указаний относительно того, какой час был нажат.так что я должен сделать, чтобы получить час?
Редактировать Мой код работает следующим образом: элемент ItemsControl привязан к списку дней.у каждого дня есть список часов.и для представления этого существует внутренний ItemControl, связанный с (дн.) часами.и для представления каждого часа есть граница.
выглядит следующим образом:
<ItemsControl x:Name="daysPanel" Grid.Column="1" ItemsSource="{Binding Days}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<ItemsControl x:Name="dayHours" ItemsSource="{Binding Hours}" Grid.Row="1">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Border Name="dayHourBorder" Tag="{Binding}" Height="30" BorderBrush="#B0B6BE" Width="193" BorderThickness="1,0,1,1" Background="{Binding Path=Selected, Converter={StaticResource boolToColorConverter}}" >