当项目源以编程方式更改时,我无法成功更新WPF Datagrid。
XAML
<DataGrid Name="ReaderGrid" ItemsSource="{Binding myData}" Height="Auto" Width="Auto" AutoGenerateColumns="False" CanUserAddRows="False" CanUserDeleteRows="False" CanUserResizeColumns="False" CanUserResizeRows="False" CanUserReorderColumns="False" IsReadOnly="True" GridLinesVisibility="None">
<DataGrid.Columns>
<DataGridTextColumn Header="Count" Width="*" FontSize="14" Binding="{Binding count}" />
<DataGridTextColumn Header="Total" Width="*" FontSize="14" Binding="{Binding total}" />
</DataGrid.Columns>
</DataGrid>
XAML.CS(code-behind)
public partial class MainWindow : Window
{
public ObservableCollection<obj> myData { get; set; }
public MainWindow()
{
InitializeComponent();
myData = new ObservableCollection<obj>();
InitializeMyData();
最后一个函数(InitializeMyData())仅填充myData与测试信息。
最后,object只是一些测试类。
public class obj
{
public int count { get; set; }
public double total { get; set; }
}
“AS-IS”代码不起作用,除了我的WPF数据表格为空外没有其他错误 - 我找到的唯一解决方法是在我初始化数据后添加以下代码。
ReaderGrid.ItemsSource = myData;
现在我的初始数据已经显示出来了,但是如果我在此之后的任何时候更改myData,我希望/期望这些更改会自动反映在我的WPF Datagrid中,可悲的是,什么也没有更新...
问题 - 为什么我的WPF绑定不起作用(为什么我需要在代码后台中显式设置ItemSource),为什么对myData的更改没有更新我的Datagrid?
谢谢,