У меня есть listview, который показывает, какие драйверы не отображаются в пользовательском интерфейсе. С помощью этого списка можно сделать их видимыми снова. Функциональность работает отлично, но для того, чтобы дать конечному пользователю некоторую ясность, какие драйверы выбраны, я хочу изменить фоновый цвет listviewitem на желтый (например). Если они снова выберут этот listviewitem, я хочу изменить фоновый цвет на нормальный.ListView.Items всегда null как ListViewItem в ListView - WPF
Это код, на мой взгляд:
<ListView Margin="10,10,10,10" x:Name="lstViewCollapsedDrivers" ItemsSource="{Binding CollapsedDrivers}" Grid.Row="1" Grid.Column="2"
ScrollViewer.CanContentScroll="True" ScrollViewer.VerticalScrollBarVisibility="Auto" SelectionChanged="LstViewCollapsedDrivers_OnSelectionChanged">
<i:Interaction.Triggers>
<i:EventTrigger SourceName="lstViewCollapsedDrivers" EventName="MouseUp">
<i:InvokeCommandAction Command="{Binding SelectCollapsedDriverCommand}" CommandParameter="{Binding ElementName=lstViewCollapsedDrivers, Path=SelectedItem}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Setter Property="Height" Value="50"/>
<Style.Triggers>
<DataTrigger Binding="{Binding Path=RowSelected}" Value="True">
<Setter Property="Background" Value="Yellow"/>
</DataTrigger>
</Style.Triggers>
</Style>
</ListView.ItemContainerStyle>
<ListView.View>
<GridView>
<GridViewColumn DisplayMemberBinding="{Binding Name}">
<GridViewColumnHeader Style="{StaticResource gridViewColumnHeaderStyle}" Content="Name"/>
</GridViewColumn>
<GridViewColumn DisplayMemberBinding="{Binding Haulier}">
<GridViewColumnHeader Style="{StaticResource gridViewColumnHeaderStyle}" Content="Haulier"/>
</GridViewColumn>
<GridViewColumn DisplayMemberBinding="{Binding Plate}">
<GridViewColumnHeader Style="{StaticResource gridViewColumnHeaderStyle}" Content="Plate"/>
</GridViewColumn>
<GridViewColumn DisplayMemberBinding="{Binding Telephone}">
<GridViewColumnHeader Style="{StaticResource gridViewColumnHeaderStyle}" Content="Telephone"/>
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>
Проблема заключается в том, что ListView.Items теперь типа Driver вместо ListViewItem (я думаю, что этим: ItemsSource = "{Binding CollapsedDrivers}") , Я пробовал много вещей, и я никак не мог разглядеть элементы в ListViewItems.
Я также добавил некоторый код (фактически я стараюсь избегать этого, но если нет другого пути ...).
private void LstViewCollapsedDrivers_OnSelectionChanged(object sender, SelectionChangedEventArgs e)
{
var test = sender as ListView;
var lstviewItem = test.SelectedItem ; // This is of type driver...
}
private void LstViewCollapsedDrivers_OnSelectionChanged(object sender, SelectionChangedEventArgs e)
{
var test = sender as ListView;
var lstviewItem = test.SelectedItem as ListViewItem; // This is null...
}
Кто-нибудь знает, как это исправить? Спасибо :)
Что именно * * является ваша проблема с деталями того типа драйвера? Что-то работает не так, как ожидалось? Зачем вам нужен ListViewItems? – nvoigt
Изменение цвета фона для выбранных ListViewItems. Невозможно назначить фон объекту типа Driver в моем проекте. –