首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将对象模型绑定到XtraReport devexpress

将对象模型绑定到XtraReport devexpress
EN

Stack Overflow用户
提问于 2013-08-26 01:03:59
回答 2查看 6.7K关注 0票数 0

我需要将xtrareport ( devexpress )绑定到对象模型。

假设我的模型是:

代码语言:javascript
复制
public class ReportViewModel
{
        public Header Header { get; set; }
        public Body Body { get; set; }
        public Footer Footer { get; set; }
}

我已经通过设计器完成了模板报告。

如何使用C#从视图模型提供报告?

这个坏了

代码语言:javascript
复制
XtraReport1 report = new XtraReport1();
report.DataSource = viewModel;

提前谢谢。

EN

回答 2

Stack Overflow用户

发布于 2013-08-28 06:27:32

仅仅将报告的DataSource设置为ViewModel是不够的,还需要将控件绑定到适当的字段。下面是我如何在WinForms中为一个报告做类似的事情:

代码语言:javascript
复制
public IssueReport(DataTable issuesTable)
{
    InitializeComponent();

    this.DataSource = issuesTable;

    xrlabelIssueNumber.DataBindings.Add("Text", this.DataSource, "IssueID");
    xrlabelAssignedUser.DataBindings.Add("Text", this.DataSource, "Assigned User");
    xrlabelPriority.DataBindings.Add("Text", this.DataSource, "Priority");
    xrlabelCategory.DataBindings.Add("Text", this.DataSource, "IssueCategory");
    xrlabelReceivedDate.DataBindings.Add("Text", this.DataSource, "ReceivedDate");
    xrlabelDueDate.DataBindings.Add("Text", this.DataSource, "DueDate");
    xrlabelProduct.DataBindings.Add("Text", this.DataSource, "Product");
    xrlabelStatus.DataBindings.Add("Text", this.DataSource, "Status");
    xrlabelSubStatus.DataBindings.Add("Text", this.DataSource, "Sub-Status");
    xrlabelVersion.DataBindings.Add("Text", this.DataSource, "VersionNumber");
    xrlabelCustomer.DataBindings.Add("Text", this.DataSource, "CustomerName");
    xrlabelLocation.DataBindings.Add("Text", this.DataSource, "LocationName");
    xrlabelRoom.DataBindings.Add("Text", this.DataSource, "RoomName");
    xrlabelPOC.DataBindings.Add("Text", this.DataSource, "POC");
    xrlabelOfficeNumber.DataBindings.Add("Text", this.DataSource, "OfficePhone");
    xrlabelCallbackNumber.DataBindings.Add("Text", this.DataSource, "CallbackNumber");
    xrlabelEmail.DataBindings.Add("Text", this.DataSource, "Email");
    xrlabelAlternateEmail.DataBindings.Add("Text", this.DataSource, "AlternateEmail");
    xrlabelSummary.DataBindings.Add("Text", this.DataSource, "IssueSummary");

}

DataBindings.Add方法有3个参数;第一个是要绑定到的对象的属性(99%的时间是XtraReportLabel的Text属性)。第二个是BindingSource (在您的例子中,您的ViewModel...but可能需要先转换为某种BindingList )。第三个是您要使用的BindingSource的字段。

希望这能帮上忙。

票数 3
EN

Stack Overflow用户

发布于 2021-04-04 20:57:15

你必须发送列表。

代码语言:javascript
复制
var viewModelList = new List<ReportViewModel>(){viewModel};
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18431502

复制
相关文章

相似问题

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