根据其中一个字段的值预选ListView(WPF)行

时间:2014-02-11 23:35:12

标签: c# wpf listview

我是世界粮食计划署的新手。我有一个绑定到任务列表的WPF ListView。列表中的每个项目都有几个字段,其中一个是字符串字段“Status”。我想要实现的是,当首次加载此ListView并且用户看到它时,所选行将是Status的值,如果为“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的样式中添加一个数据触发器,并提供条件,但是示例非常不清楚,我无法应用它们。任何人都可以帮忙做一个简短的解释和一个具体的例子吗?

谢谢。

1 个答案:

答案 0 :(得分:0)

解决了它:

<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>