收录日期:2020/06/01 04:21:59 时间:2016/07/26 19:55:46 标签:WPF/Silverlight
主窗体是Silverlight用户控件页面也就是(.xaml文件),弹出的是Silverlight子窗体(ChildWindow.xaml)
当前情况:1.点击子窗体中的“确定”和“右上角关闭按钮”的时候刷新父窗体(父窗体是一个datagrid数据列表) 
              2.为了便于传参数,本人将子窗体的ChildWindow()函数重写了,也就是加了一个实体参数,方便弹出子窗体的时候加载数据,本人以前是搞bs的,突然间搞sl,有些问题可能提的比较傻,看帖的别sb的骂啊

谢谢
官方帮助文档上的例子,希望楼主能看得明白

    public partial class MainPage : UserControl
    {
        public MainPage()
        {
            InitializeComponent();
        }
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            LoginWindow loginWnd = new LoginWindow();
            loginWnd.Closed += new EventHandler(loginWnd_Closed);
            loginWnd.Show();
        }
        void loginWnd_Closed(object sender, EventArgs e)
        {
            LoginWindow lw = (LoginWindow)sender;

            if (lw.DialogResult == true && lw.nameBox.Text != string.Empty)
            {
                this.helloTxt.Text = "Hello " + lw.nameBox.Text;
            }
            else if (lw.DialogResult == false)
            {
                this.helloTxt.Text = "Login canceled.";
            }
        }
    }

    public partial class LoginWindow : ChildWindow
    {
        public LoginWindow()
        {
            InitializeComponent();
        }
        private void OKButton_Click(object sender, RoutedEventArgs e)
        {
            this.DialogResult = true;
        }

        private void CancelButton_Click(object sender, RoutedEventArgs e)
        {
            this.DialogResult = false;
        }
        private void ChildWindow_Closing(object sender, System.ComponentModel.CancelEventArgs e)
        {
            if (this.DialogResult == true && 
                    (this.nameBox.Text == string.Empty || this.passwordBox.Password == string.Empty))
            {
                e.Cancel = true;
                ChildWindow cw = new ChildWindow();
                cw.Content = "Please enter name and password or click Cancel.";
                cw.Show();
            }
        }
    }



要注意的是 ChildWindow.Show() 不是模态的,千万不要在其下方摆放语句。
引用 1 楼 sunpire 的回复:
官方帮助文档上的例子,希望楼主能看得明白

C# code

    public partial class MainPage : UserControl
    {
        public MainPage()
        {
            InitializeComponent();
        }
        private void But……



这个例子我明白,但是我现在想在关闭子窗体的时候加载UserControl_Loaded(object sender, RoutedEventArgs e)这个函数,也就是把数据重新加载一次,但是加载的时候我不知道这个RoutedEventArgs 参数怎么写填写,因为loginWnd_Closed(object sender, EventArgs e)
里面没有那个参数
mark this thread
mark this thread
楼主的描述比较晦涩,是不是想实现:

主Win --> 传递实体实例 给 ChildWin --> ChildWin 中修改这个实体实例(如从WCF端获取数据)
--> 关闭ChildWin --> 用该实体实例刷新主Win 中的显示?

如果是这样,大致有两种简单的方法:
1. 根本就不用什么操作, Object实例是引用传递的,只要主Win中是使用 Binding 来呈现实体实例的,
并且是使用OneWay或TwoWay绑定,那么在ChildWin中改变了这个实例时,主Win中的呈现是自动更新的;

2. 在ChildWin中把这个实体实例重新公开为一个属性就可以了,如 属性EntityA ,
这样在

        void loginWnd_Closed(object sender, EventArgs e)
        {
            LoginWindow lw = (LoginWindow)sender;

            // 可以任意访问 lw.EntityA 
        }


这种方法是最常用的,因为可能是在 ChildWin 中根据参数得到一个全新的实体实例,而不是从 主Win 传入一个实体实例。
很简单 你直接把datagrid再绑定一次  局部刷新

请问linq 语句的写法 MediunBlob类型,数据太大上传失败:max_long_data_size 我用的是DW开发工具。我想右键单击。上下文就显示刷新 对google返回结果进行重排序 哄一下!不正当竞争!不正当竞争! 关于RichTextbox与Textbox的区别 ASP.NET使用webrequset抓取需要登陆以及验证码才能访问的页面 如何能够使一台电脑同时上外网、内网和专线而互不干扰? 求一个跳转的httpd.ini写法,谢谢 怎么在google maps api v3地图上画一个扇形? 用SetWindowsHookEx把dll加载到上去线程中,让send跳到自己的mysend,求帮忙! weblogic 部署出错 纠结了好久了 求教大神 分页输出 求指点 注册表写进去了 读出来的数不是想要的 C#的exe这么容易就能反汇编,为什么还要用? 数字与字符串转换问题,求解 求解高人-------如何生成播放日程的SQL语句. 为什么我的PostgreSQL的SQL shell(psql)执行不了命令? 归并排序如何实现,谁能帮我给一个归并排序的例子 看来人确实是不能老实,这个社会太险恶 打印机DLE EOT如何判断有无纸状态?急求VB代码 android报错:SWT folder does not exist 如何下载资源?? 取出两个数组中相同的元素,要最简洁的办法! SetDlgItemText与GetDlgItemText 求教一个交叉查询的语句或思路,感谢各位关心 cuda二维数组传参!(各位大侠帮忙啊) 关于pivot函数的简单用法 更新SQL数据库问题 跪求 VC ADO远程连接oracle字符串