首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UWP中如何刷新sfGrid?

UWP中如何刷新sfGrid?
EN

Stack Overflow用户
提问于 2022-06-03 05:39:38
回答 1查看 76关注 0票数 0

当我单击sfGrid时,我想根据查询刷新radioButton。

网格在第一次加载时显示得很好。但是,当我在editablePage中调用重绘()时,我会得到一个空的sfGrid。

我尝试了.View.Refresh()并使用onNavigateTo的参数,但是失败了

如何刷新sfGrid..?

UserinfoModel

代码语言:javascript
复制
public void ReDraw(string rb_cond)
    {
        StringBuilder sb = new StringBuilder();
        sb.AppendLine(" SELECT A.USER_ID, A.USER_NM, A.USER_POS ,A.PERMISS ,A.CONST_DT ,A.MODIFY_DT ,A.REMARK ,C.SYS_NM ");
        sb.AppendLine(" FROM USER_INFO A ");
        sb.AppendLine(" LEFT OUTER JOIN CHARGE_PRJT B ON A.USER_ID = B.USER_ID ");
        sb.AppendLine(" LEFT OUTER JOIN SYS_INFO C ON C.SYS_ID = B.SYS_ID ");
        sb.AppendLine(" WHERE 1=1 ");

        if (rb_cond == "now")
        {
            sb.AppendLine(" AND A.USE_YN = 'Y' ");
        }
        else if (rb_cond == "del")
        {
            sb.AppendLine(" AND A.USE_YN = 'N' ");
        }

        //AppInstance.Ins.dbHelper.BeginTransaction();
        _dt = AppInstance.Ins.dbHelper.GetDataTable(sb.ToString(), false);

        SetDataSource(_dt);
    }

代码语言:javascript
复制
    public void SetDataSource(DataTable dt)
    {
        if (ItemsCollection != null)
            ItemsCollection.Clear();

        ObservableCollection<FunctionDataGridModel> result = new ObservableCollection<FunctionDataGridModel>();

        foreach (System.Data.DataRow dr in dt.Rows)
        {
            FunctionDataGridModel rootModel = new FunctionDataGridModel();
            rootModel.id = dr["USER_ID"].ToString();
            rootModel.name = dr["USER_NM"].ToString();
            rootModel.group = dr["USER_POS"].ToString();
            rootModel.permiss = dr["PERMISS"].ToString();
            rootModel.project = dr["SYS_NM"].ToString();
            rootModel.startDT = dr["CONST_DT"].ToString();
            rootModel.endDt = dr["MODIFY_DT"].ToString();
            rootModel.remark = dr["REMARK"].ToString();

            rootModel.Item = rootModel;
            result.Add(rootModel);
            //AppInstance.Ins.dbHelper.Update(_dt);

        }
        this.ItemsCollection = result;

    }

EidtablePage

代码语言:javascript
复制
private void NowUser_Checked(object sender, RoutedEventArgs e)
    {
        string con = "now";
        UserinfoModel model = (DataGridFrame.Content as Userinfo.userinfo01).DataContext as UserinfoModel;
        model.ReDraw(con);
    }
EN

回答 1

Stack Overflow用户

发布于 2022-06-06 15:24:17

我们怀疑您在更改用ItemsSource中的ItemsSource属性绑定的Source时需要更改网格的ItemsSource。

您可以通过使用INotifyPropertyChanged实现底层可观察集合属性来实现这一点。请参考下面的代码片段,

代码语言:javascript
复制
public class ViewModel : INotifyPropertyChanged
{
private ObservableCollection<OrderInfo> _orders;

public ObservableCollection<OrderInfo> ItemsCollection
{
    get { return _orders; }
    set
    {
        _orders = value;
        OnPropertyChanged("ItemsCollection");
    }
}

public event PropertyChangedEventHandler PropertyChanged;

private void OnPropertyChanged(string propertyName)
{
    if (PropertyChanged != null)
        this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}


public ViewModel()
{
    _orders = new ObservableCollection<OrderInfo>();
}
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72485154

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档