You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将MainWindow.xaml中TextBox的值传递至XtraReport的XRLabel

嘿,这问题我太熟了!把WPF MainWindow里TextBox的内容传给DevExpress XtraReport的XRLabel,有两种实用的实现方式,给你一步步讲清楚:

方法一:直接给XRLabel控件赋值(简单直接)

这种方式适合简单场景,直接操作报表控件:

  • 第一步,先让XRLabel能被外部访问:
    打开你的XtraReport设计器,选中目标XRLabel,在属性面板里找到Modifiers选项,把它改成Public(默认是Private,外部无法访问)。
  • 第二步,在MainWindow里实例化报表并赋值:
    比如你有个按钮触发报表预览,在按钮点击事件里写这段代码:
private void btnPreviewReport_Click(object sender, RoutedEventArgs e)
{
    // 实例化你的报表类(假设叫MyCustomReport)
    var report = new MyCustomReport();
    // 把TextBox的内容直接赋值给XRLabel的Text属性
    report.xrLabel1.Text = txtUserInput.Text;
    // 打开报表预览窗口
    var previewTool = new ReportPrintTool(report);
    previewTool.ShowPreview();
}
方法二:通过报表参数绑定(更规范,适合复杂场景)

如果你的报表需要复用或者有多个参数要传递,用参数绑定的方式更优雅:

  • 第一步,给报表添加参数:
    在XtraReport设计器里,右键报表空白处 → 选择「添加参数」,创建一个名为UserInputText的参数,类型设为String,可以按需设置默认值或是否可见。
  • 第二步,绑定XRLabel到参数:
    选中XRLabel,在属性面板的Text属性里,点击右侧的绑定按钮,选择刚才创建的UserInputText参数;或者直接在Text框里输入?UserInputText(这是DevExpress报表参数的绑定语法)。
  • 第三步,在MainWindow里给报表参数赋值:
    同样在按钮点击事件里写代码:
private void btnPreviewReport_Click(object sender, RoutedEventArgs e)
{
    var report = new MyCustomReport();
    // 给报表参数赋值
    report.Parameters["UserInputText"].Value = txtUserInput.Text;
    // 如果你不想让用户在预览界面修改这个参数,可以把它设为不可见
    report.Parameters["UserInputText"].Visible = false;
    // 打开预览
    var previewTool = new ReportPrintTool(report);
    previewTool.ShowPreview();
}

小补充:如果你的项目用了MVVM架构,也可以把TextBox的内容绑定到ViewModel的属性,然后报表从ViewModel中读取这个值,核心逻辑和上面两种方式一致~

内容的提问来源于stack exchange,提问作者j.doen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 07:10:49