【问题标题】:How to bring valus from a window to a Page in WPF如何将值从窗口带到 WPF 中的页面
【发布时间】:2013-10-09 12:56:30
【问题描述】:

我有一个 WPF 应用程序,它只有一个主窗口和一个 IFrame,我用它来打开我的 WPF 页面,有一个页面在单击按钮时我打开一个窗口,该窗口有一个包含一些数据的网格,

如何将日期从“弹出”窗口带到我的页面?

我已经尝试从窗口中获取父元素,但没有。

再次提前致谢!

【问题讨论】:

    标签: c# asp.net wpf xaml wpfdatagrid


    【解决方案1】:

    不太确定你想要什么,但让我试试。

    我的主窗口 XAML:

    <Window x:Class="Teste.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow">
        <Grid>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="1*"/>
                <ColumnDefinition Width="1*"/>
                <ColumnDefinition Width="1*"/>
            </Grid.ColumnDefinitions>
            <Button Content="New Window" Margin="0,220" Grid.Column="1" Grid.ColumnSpan="1" Click="Button_Click" />
        </Grid>
    </Window>
    

    恢复 MainWindow.xaml.cs:

    namespace Teste
    {
        public partial class MainWindow : Window
        {
             public MainWindow()
             {
                InitializeComponent();
             }
    
             private void Button_Click(object sender, RoutedEventArgs e)
             {
               myWindow newWindow = new myWindow();
               var child = (TextBlock)newWindow.FindName("txtBlock");
    
               MessageBox.Show(child.Text);
             }
        }
    }
    

    myWindow.xaml:

    <Window x:Class="Teste.myWindow"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            Title="myWindow" Height="300" Width="300" SizeToContent="WidthAndHeight">
        <StackPanel>
            <TextBlock x:Name="txtBlock" Text="Some Text" Margin="100" />
        </StackPanel>
    </Window>
    

    好的,考虑到这一点:

    1. 我的项目有 2 个窗口(MainWindow 和 myWindow)。
    2. MainWindow 按钮事件实例化 myWindow。
    3. 变量child 查找名为txtBlock 的元素(我的TextBlock)。
    4. 既然我知道我想得到一个TextBlock,child 也将元素转换为TextBlock,因此代码:var child = (TextBlock)newWindow.FindName("txtBlock");
    5. 现在我有了 TextBlock 的“实例”,我可以使用它的任何属性。在这种情况下,仅出于测试目的,我使用Text 属性并将其内容显示在MessageBox 中,代码为:MessageBox.Show(child.Text);


    即使那不是你要找的东西,它也可以给你一个提示。这里的诀窍是演员表

    祝你好运!

    【讨论】:

    • 您好 Tico,感谢您的回复,这几乎就是我想要的。再给我一次尝试说出我一直在尝试的东西。与您的示例不同,我在 IFrame 中有一个页面,并且从该框架中弹出一个窗口,该窗口是一种快速搜索客户的方式,我可以选择任何我想要的人。这些客户显示在数据网格中,当我在某个客户中双击时,我想将他的所有数据带到我的页面,这是一种“父”,我清楚了吗?我也可以用葡萄牙语这么说!
    • 遗憾的是它没有。我在一个页面中,当我单击“搜索客户”按钮时,它会打开一个窗口对话框,在网格中显示客户。从那以后,我根本无法将任何值传递给我的页面,因为它们没有任何链接。
    • 嗯...你能给我举个例子吗?
    • 你这是什么意思?
    • 据我了解:您单击按钮转到窗口,从网格中选择一行/单元格并想在上一页使用它?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-11
    相关资源
    最近更新 更多