Togglebutton在集合刷新时切换

时间:2017-02-06 12:59:28

标签: c# wpf xaml datagrid

我有一个DataGrid显示这样的工作:

enter image description here

现在我有一些BackgroundTasks来定期刷新数据。

当我刷新时,第一行会自动切换。

我无法弄清楚为什么......

这是我的xaml

<DataGrid Grid.Row="1"
          ItemsSource="{Binding Path=JobCollectionView}"
          SelectedItem="{Binding Path=SelectedEntry,
                                 UpdateSourceTrigger=PropertyChanged,
                                 Mode=TwoWay}"
          IsReadOnly="True"                      
          x:Name="dataGrid"
          AutoGenerateColumns="False"
          CanUserAddRows="False"              
          SelectionUnit="FullRow"
          SelectionMode="Single"
          ScrollViewer.HorizontalScrollBarVisibility="Disabled"
          CanUserResizeColumns="True"                      
          VerticalContentAlignment="Center">
[...]>
<DataGridTemplateColumn CellStyle="{StaticResource DataGridNonFocusableCell}">
  <DataGridTemplateColumn.CellTemplate>
    <DataTemplate>
      <ToggleButton IsChecked="{Binding RelativeSource={RelativeSource AncestorType=DataGridRow},
                                        Path=DetailsVisibility,
                                        Converter={StaticResource BoolToVisConverter},
                                        Mode=TwoWay,
                                        FallbackValue=False}"
                    Height="20" 
                    Width="20" />
    </DataTemplate>
  </DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
[...]/>

1 个答案:

答案 0 :(得分:1)

目前还不清楚为什么行的单元格模板需要RelativeSource绑定,并且无论实际行如何,它都可以始终获取第1行以满足其所有数据需求。(?)

行的datacontext应该保存对所需项目的实际引用。

删除RelativeSource绑定,仅支持对象的直接继承datacontext绑定。

如果这不起作用,请将您的情况分解为一个可演示的示例(您可以在此处发布)再现情况。创建演示可以帮助您排序失败的原因。