Uwp 在DataGrid中使用DataTemplate时绑定失败

Uwp 在DataGrid中使用DataTemplate时绑定失败,uwp,datagrid,Uwp,Datagrid,我有一个使用DataGrid的uwp应用程序 我的DataGrid中的大多数列都是相当普通的文本列,工作正常 在一列中,我有一个按钮,可以更改其文本和颜色以匹配单元格中的数据。为了实现这一点,我使用了一个带有嵌入式按钮的DataTemplate,并使用转换器将按钮的各种属性绑定到数据 当我运行应用程序时,第一屏数据看起来是正确的,当我向下滚动时,数据看起来也很好,但当我向上滚动到顶部时,许多行的此按钮状态都是错误的。(但这些行的另一个普通数据是正确的) 我使用调试器进行了检查,以确保底层数据没有

我有一个使用DataGrid的uwp应用程序

我的DataGrid中的大多数列都是相当普通的文本列,工作正常

在一列中,我有一个按钮,可以更改其文本和颜色以匹配单元格中的数据。为了实现这一点,我使用了一个带有嵌入式按钮的DataTemplate,并使用转换器将按钮的各种属性绑定到数据

当我运行应用程序时,第一屏数据看起来是正确的,当我向下滚动时,数据看起来也很好,但当我向上滚动到顶部时,许多行的此按钮状态都是错误的。(但这些行的另一个普通数据是正确的)

我使用调试器进行了检查,以确保底层数据没有更改,并且没有更改

我还使用了调试器来查看何时调用我的转换器,而它们的调用频率并没有我预期的那么高。最初,每行有一个调用,但当我向下滚动后向上滚动时,我只看到偶尔调用函数(如果有的话)

我不确定我做错了什么。据我所知,我的所有绑定都是正确的,并且一开始工作正常,只是当内容滚动时,它们没有被用来更新屏幕。我还能做些什么来解决这个问题

以下是XML:

<controls:DataGridTemplateColumn x:Name="markCompleteCol" Header="Complete" Tag="Complete">
     <controls:DataGridTemplateColumn.CellTemplate>
          <DataTemplate>
             <Button x:Name="markCompleteColButton" Background="Transparent" Visibility="{Binding Path=IsCompleted, 
            Converter={StaticResource inverseBoolToVisConverter}, ConverterParameter=false}" HorizontalAlignment="Center" HorizontalContentAlignment="Center" Click="MarkCompleteColButton_ClickAsync">
                <Button.Content>
                  <StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center">
                       <Border CornerRadius="14" 
                               Background="{Binding Path=IsCompleted, Mode=OneWay, 
                               Converter={StaticResource markCompleteButtonBackgroundColorFormatter}}" 
                               BorderBrush="{Binding Path=IsCompleted, Mode=OneWay, Converter={StaticResource markCompleteButtonOutlineColorFormatter}}"
                                BorderThickness="0">
                         <TextBlock Text="{Binding Path=IsCompleted, Mode=OneWay, Converter={StaticResource markCompleteButtonFormatter}}" 
                                               Margin="16, 5, 16, 5"
                                               TextAlignment="Center"
                                               Foreground="{Binding Path=IsCompleted, Mode=OneWay, Converter={StaticResource markCompleteButtonOutlineColorFormatter}}"/>
                            </Border>
                    </StackPanel>
                </Button.Content>
            </Button>
        </DataTemplate>
    </controls:DataGridTemplateColumn.CellTemplate>
</controls:DataGridTemplateColumn>


Frank

请共享您的xaml代码或提供给我们。从我所阅读的内容来看,我认为禁用行虚拟化可以解决我的问题,但在UWP应用程序中似乎没有这样做的方法。特定属性不存在。您是否为数据模型实现了INotifyPropertyChanged接口?是的,我确实实现了INotifyPropertyChanged我检查了您的代码,它看起来是正确的,我无法重新解决上述问题,您能否创建空白应用程序并提供给我们?