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

如何在点击按钮时将ComboBox选中项显示在另一页面的TextBox中

解决WPF页面间传值:用NavigationService把ComboBox选中值传到Display页面的TextBox

嘿,你的思路完全没问题——NavigationService确实是WPF中页面间导航传值的靠谱方案,我来一步步帮你实现需求!

方法一:通过导航参数(QueryString)传递

这是最常用的方式,适合传递简单类型的值(比如字符串、数字):

  1. 源页面(比如MainPage.xaml.cs)的按钮点击事件
    先获取你已经确认过的itemSelection,然后在导航时把它作为参数附加到Uri上:

    private void NavigateButton_Click(object sender, RoutedEventArgs e)
    {
        // 你已经验证过这个值是正确的
        string itemSelection = yourComboBox.SelectedItem.ToString();
        
        // 导航到Display页面并带上参数
        NavigationService.Navigate(new Uri("/Display.xaml?selectedItem=" + itemSelection, UriKind.Relative));
    }
    
  2. Display.xaml.cs接收参数并赋值
    重写OnNavigatedTo方法,从NavigationContext里取出参数,再赋值给TextBox:

    protected override void OnNavigatedTo(NavigationEventArgs e)
    {
        base.OnNavigatedTo(e);
        
        // 尝试获取传递过来的参数
        if (NavigationContext.QueryString.TryGetValue("selectedItem", out string selectedValue))
        {
            // 把值显示到TextBox里
            resultTextBox.Text = selectedValue;
        }
    }
    

方法二:直接给目标页面的公共属性赋值

如果你的值是复杂对象,或者觉得QueryString不够直观,可以用这种更灵活的方式:

  1. 在Display.xaml.cs里定义公共属性

    public string SelectedItemValue { get; set; }
    
  2. 源页面导航前先给属性赋值

    private void NavigateButton_Click(object sender, RoutedEventArgs e)
    {
        string itemSelection = yourComboBox.SelectedItem.ToString();
        
        // 实例化Display页面,直接设置属性
        DisplayPage displayPage = new DisplayPage();
        displayPage.SelectedItemValue = itemSelection;
        
        // 导航到该页面
        NavigationService.Navigate(displayPage);
    }
    
  3. Display页面在导航完成后赋值
    同样在OnNavigatedTo里把属性值放到TextBox:

    protected override void OnNavigatedTo(NavigationEventArgs e)
    {
        base.OnNavigatedTo(e);
        resultTextBox.Text = SelectedItemValue;
    }
    

小提示

  • 确保你的页面是在Frame控件里导航的,只有这样NavigationService才会生效;
  • 如果SelectedItem不是字符串类型,记得先转换成合适的格式(比如用Convert.ToString()或者对象的特定属性);
  • 可以在Display页面里加个空值判断,避免参数为空时TextBox显示异常。

内容的提问来源于stack exchange,提问作者HippyDippy

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 08:13:51