我有一个DataGrid显示这样的工作:
现在我有一些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>
[...]/>
答案 0 :(得分:1)
目前还不清楚为什么行的单元格模板需要RelativeSource
绑定,并且无论实际行如何,它都可以始终获取第1行以满足其所有数据需求。(?)
行的datacontext应该保存对所需项目的实际引用。
删除RelativeSource
绑定,仅支持对象的直接继承datacontext绑定。
如果这不起作用,请将您的情况分解为一个可演示的示例(您可以在此处发布)再现情况。创建演示可以帮助您排序失败的原因。