【发布时间】:2015-11-01 18:11:46
【问题描述】:
我正在使用在 XAML 中绑定到 Observable 集合的 WPF 列表视图。下面是我的列表视图项目模板,它生成类似的视图
<DataTemplate x:Key="ImageOverlayAlbumDataTemplate">
<Grid>
<Grid Margin="5,5,5,5">
<Border BorderBrush="LightGray" BorderThickness="1">
<StackPanel Orientation="Vertical" Background="White" Height="50" Width="240" VerticalAlignment="Center">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<Border Name="ActionStatusIndicator" Height="50" Width="7" Margin="0" Grid.RowSpan="2">
<Border.Style>
<Style TargetType="{x:Type Border}">
<Style.Triggers>
<DataTrigger Binding="{Binding Path=statusid}" Value="3">
<Setter Property="Background" Value="SteelBlue"/>
</DataTrigger>
<DataTrigger Binding="{Binding Path=statusid}" Value="4">
<Setter Property="Background" Value="LightGray"/>
</DataTrigger>
<DataTrigger Binding="{Binding Path=statusid}" Value="5">
<Setter Property="Background" Value="Orange"/>
</DataTrigger>
<DataTrigger Binding="{Binding Path=statusid}" Value="6">
<Setter Property="Background" Value="Red"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Border.Style>
</Border>
<!--</StackPanel>-->
<TextBlock Text="{Binding subject}" Margin="10,0,0,0" Width="230" Height="20" FontSize="13"
TextTrimming="CharacterEllipsis" HorizontalAlignment="Left" TextAlignment="Left"
Grid.Row="0" Grid.Column="1"/>
<TextBlock Text="{Binding Path=displayname}" FontSize="10" Margin="10,3,0,0" Width="110" Height="20"
TextTrimming="CharacterEllipsis" HorizontalAlignment="Left" TextAlignment="Left"
Grid.Row="1" Grid.Column="1"/>
<Image x:Name="sideButton" Source="/Icons/action.png" Width="20" Height="20" Grid.Row="1" Grid.Column="1" HorizontalAlignment="Right" >
<Image.Style>
<Style TargetType="{x:Type Image}">
<Setter Property="Visibility" Value="Hidden" />
<Style.Triggers>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type ListViewItem}},Path=IsMouseOver}" Value="True">
<Setter Property="Visibility" Value="Visible" />
</DataTrigger>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type ListViewItem}},Path=IsMouseOver}" Value="True" />
<Condition Binding="{Binding Path=StatusID}" Value="3" />
</MultiDataTrigger.Conditions>
<Setter Property="Visibility" Value="Visible" />
</MultiDataTrigger>
</Style.Triggers>
</Style>
</Image.Style>
</Image>
</Grid>
</StackPanel>
</Border>
</Grid>
</Grid>
</DataTemplate>
当用户单击鼠标悬停时出现的图像(勾号)时,我想将“StatusId”更改为其他数字。
StatusID 存在于 ActionView 类中,因为 int 和以上列表绑定到
【问题讨论】:
-
以上列表绑定到 ObservableCollection
。我无法理解如何更改用户单击鼠标悬停图像的 Item 的 StatusId 属性。
标签: c# wpf listview observablecollection