C# 基于其中一个字段的值预选ListView(WPF)行

C# 基于其中一个字段的值预选ListView(WPF)行,c#,wpf,listview,C#,Wpf,Listview,我是世界粮食计划署的新成员。我有一个绑定到任务列表的WPF列表视图。列表中的每个项目都有几个字段,其中一个是字符串字段状态。我试图实现的是,当第一次加载此ListView并且用户看到它时,所选行将显示Status的值if Fatal。我可以假设,对于这个特性,最多只能存在一个具有该状态的行。 这是我的密码: <ListView Style="{StaticResource ListViewStyleFC}" ItemsSource="{Binding CompletedCache.Sel

我是世界粮食计划署的新成员。我有一个绑定到任务列表的WPF列表视图。列表中的每个项目都有几个字段,其中一个是字符串字段状态。我试图实现的是,当第一次加载此ListView并且用户看到它时,所选行将显示Status的值if Fatal。我可以假设,对于这个特性,最多只能存在一个具有该状态的行。 这是我的密码:

 <ListView Style="{StaticResource ListViewStyleFC}" ItemsSource="{Binding CompletedCache.SelectedItem.FilteredTask}" x:Name="_taskListView">
                        <ListView.ItemContainerStyle>
                            <Style TargetType="{x:Type ListViewItem}" BasedOn="{StaticResource ListViewItemStyleFC}">
                                <Setter Property="ContextMenu" Value="{StaticResource EmptyContextMenu}"/>
                            </Style>                   
                        </ListView.ItemContainerStyle>
                        <ListView.View>
                            <GridView>
                                <Helpers:MinWidthColumnListView MinWidth="50" DisplayMemberBinding="{Binding Name}" Width="200" x:Name="NameHeader">
                                    <GridViewColumnHeader Content="Name"/>
                                </Helpers:MinWidthColumnListView>
                                <Helpers:MinWidthColumnListView MinWidth="50" DisplayMemberBinding="{Binding TaskStatus}" Width="100" x:Name="TaskStatusHeader" >
                                    <GridViewColumnHeader Content="Status"/>
                                </Helpers:MinWidthColumnListView>
                                <Helpers:MinWidthColumnListView MinWidth="50" DisplayMemberBinding="{Binding RunningComputer}" Width="100" >
                                    <GridViewColumnHeader Content="Machine"/>
                                </Helpers:MinWidthColumnListView>
                                <Helpers:MinWidthColumnListView MinWidth="50" DisplayMemberBinding="{Binding Message}" Width="300" >
                                    <GridViewColumnHeader Content="Message"/>
                                </Helpers:MinWidthColumnListView>
                            </GridView>
                        </ListView.View>
                    </ListView>
我读了一些书,看到你应该在ListView.ItemContainerStyle的样式中添加一个数据触发器,并在那里给出了条件,但是示例非常不清楚,我无法应用它们。有人能提供一个简短的解释和具体的例子吗

谢谢。

解决了这个问题:

<ListView.ItemContainerStyle>
                            <Style TargetType="{x:Type ListViewItem}" BasedOn="{StaticResource ListViewItemStyleFC}">
                                <Setter Property="ContextMenu" Value="{StaticResource EmptyContextMenu}"/>
                                <Style.Triggers>
                                    <DataTrigger Binding="{Binding Path=TaskStatus}" Value="Fatal">
                                        <Setter Property="IsSelected" Value="True"/>
                                    </DataTrigger>
                                </Style.Triggers>
                            </Style>                   
                        </ListView.ItemContainerStyle>

你能发布你的代码吗?你可以使用转换器。输入是状态,输出是选定的行索引。@PoweredByOrange:Done。格兰特:是的