c# - MVVM Datagrid 第一行默认选中但未突出显示

标签 c# wpf xaml mvvm datagrid

我有一个数据网格,它绑定(bind)到我的 ViewModel 上的一个集合。当窗口加载时,将填充数据网格并设置 SelectedItem。 (我知道这一点是因为我有一个绑定(bind)到所选项目的详细 View 。)但是该行未突出显示。如果我单击该行,它将突出显示并正常工作。

如何使选定行在默认选择时突出显示?

<DataGrid IsSynchronizedWithCurrentItem="True" SelectionUnit="FullRow"  RowHeaderWidth="0"  VerticalScrollBarVisibility="Visible" HorizontalScrollBarVisibility="Visible"  IsReadOnly="True" ItemsSource="{Binding Items}"  SelectedItem="{Binding Path=SelectedItem, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" AutoGenerateColumns="False">
    <DataGrid.Columns>                    
        <DataGridTextColumn Header="Run Date" Binding="{Binding Path=RunDate, StringFormat={}{0:MM-dd-yy HH:mm:ss} }"  />
        <DataGridTextColumn Header="Description" Binding="{Binding Description}" />
        <DataGridTextColumn Header="Duration" Binding="{Binding Duration}" />
        <DataGridTextColumn Header="Deviation" Binding="{Binding Deviation}" />
    </DataGrid.Columns>
</DataGrid>

最佳答案

您只需要一种样式来告诉您如何处理 SelctedItem

<Style x:Key="SomeStyle" TargetType="{x:Type DataGridRow}" >
        <Style.Triggers>
            <Trigger Property="DataGridRow.IsSelected" Value="True">
                <Setter Property="Background" Value="Red" />
            </Trigger>
        </Style.Triggers>
    </Style>

然后将它应用到 xaml

中的 datagrid
<DataGrid RowStyle="{StaticResource SomeStyle}"...

关于c# - MVVM Datagrid 第一行默认选中但未突出显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25486648/

相关文章:

c# - 是否可以在不复制的情况下为多个组件创建一个 Blazor 范围的 CSS 文件?

wpf - 访问 ControlTemplate 中的内部元素

c# - XAML 中的命名空间

c# - KinectColorViewer 和 SDK 1.6

javascript - 无法让 OnTriggerEnter 循环

c# - 使用 Regex 或 XmlParser 替换标签中未包含的文本

c# - WPF 数据网格 : Save cell changes immediately with MVVM

c# - 如何使用 livecharts 动态创建笛卡尔图表

c# - 必须在与 DependencyObject 相同的线程上创建 DependencySource

c# - 在 MVP-VM 事件或按钮单击中使用 WPF xaml