首页 > 解决方案 > RadDataGrid 中没有填写数据

问题描述

我有一个 UWP 应用程序,我正在使用 RadDataGrid 来显示一些数据。当我对我的 API 进行 API 调用以在网格中设置数据时,数据网格显示空行。

我的 XAML

 <tg:RadDataGrid Grid.Row="2" UserGroupMode="Disabled" ColumnDataOperationsMode="Flyout"  x:Name="infoGrid" ItemsSource="{x:Bind  Path=ViewModel.history}"  AutoGenerateColumns="False" FontSize="24" VerticalContentAlignment="Top" Margin="0,0,0,50" VerticalAlignment="Top" MaxHeight="500">
            <tg:RadDataGrid.Columns>
                <tg:DataGridTextColumn PropertyName="UpdatedBy" Header="Verplaatst door"/>
                <tg:DataGridDateColumn PropertyName="UpdateDate" Header="Bijgewerkt op"  CellContentFormat=" {0:dd/MM/yyyy}" />
                <tg:DataGridTextColumn PropertyName="Location" Header="Verplaatst naar"/>
            </tg:RadDataGrid.Columns>
        </tg:RadDataGrid>

我的 C# 代码来设置数据

 public async void APICALL()
        {
            var result = await LotService.GetLotInfo(ViewModel.scanField);
            ViewModel.lot = result;
            ViewModel.history = result.LotHistory;
            infoGrid.ItemsSource = null;
            infoGrid.ItemsSource = ViewModel.history;
            IsBusy = false;
        }
    }

ViewModel.history 是 LotHistoryInfo 类的列表

编辑:按照 mm8 的建议添加了 getter 和 setter

public class LotHistoryInfo
    {
       public LotInfo lot { get; set; }
        public string scanField { get; set; }
        public List<LotHistoryInfo> history { get; set; }

        public LotHistoryInfo(LotStoreHistory his)
        {
             Location = new Location(his.LshStoreid.ToString(), his.LshStorex, his.LshStorey, his.LshStorez);
                UpdatedBy = his.UpdatedBy;
                UpdateDate = his.Updated;

        }
        public LotHistoryInfo()
        {

        }
    }

我的数据网格承认其中应该有 3 个项目,但它没有填写它们。空网格

苏,我错过了什么?

标签: c#uwpuwp-xaml

解决方案


您只能绑定到公共属性

public class LotHistoryInfo
{
    public Location Location { get; set; }
    public string UpdatedBy { get; set; }
    public DateTimeOffset UpdateDate { get; set; }

    public LotHistoryInfo(LotStoreHistory his)
    {
        Location = new Location(his.LshStoreid.ToString(), his.LshStorex, his.LshStorey, his.LshStorez);
        UpdatedBy = his.UpdatedBy;
        UpdateDate = his.Updated;

    }
    public LotHistoryInfo()
    {

    }
}

您已经实现LocationUpdatedBy并且UpdateDate作为字段

public Location Location;
public string UpdatedBy;
public DateTimeOffset UpdateDate;

推荐阅读