レポートの DataSource を ViewModel に設定するだけでは不十分です。コントロールを適切なフィールドにバインドする必要もあります。WinForms のレポートに対して同様のことを行った方法を次に示します。
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 つの引数を取ります。1 つ目は、バインド先のオブジェクトのプロパティです (99% の場合Text
、XtraReportLabel のプロパティです)。2番目はBindingSourceです(あなたの場合、あなたのViewModel ...しかし、これは最初にある種のBindingListに変換する必要があるかもしれません)。3 番目は、使用する BindingSource のフィールドです。
それが役立つことを願って....