外向小朋友 2020-12-22 13:56 采纳率: 66.7%
浏览 206
已结题

wpf跨窗口获取控件数据

之前用过winform,用wpf的这个就有点懵了。

如果我在b窗口调用counter,那就获取不了a窗口中的listview(datePath)的值(断点调试的时候)

如果我在a窗口直接使用点击按钮,用异线程反而可以获取到a窗口中的listview(datePath)的值(断点调试的时候)

如果我把创建新线程放到b窗口,那么也获取不到a窗口中的listview(datePath)的值(断点调试的时候)

代码如下

a窗口


 
delegate string[] PathValue();

public void Counter()
        {
            if (this.datePath.CheckAccess())
            {
                var a = FeedbackToConsole();
                //var a = Feedback();
                //return a;
                Console.WriteLine(a);
            }
            else
            {
                var a = datePath.Dispatcher.Invoke(new PathValue(FeedbackToConsole));
                //return a;
                Console.WriteLine(a);
            }
        }


 private string[]  FeedbackToConsole()
        {
            List<string> list = new List<string>() { };
             foreach (string i in datePath.Items)
                    {
                        string a = i;
                        list.Add(a);
                        Console.WriteLine(a);
                    }
            var resultValue = list.ToArray();
            return resultValue;
        }
private void Button_Click_2(object sender, RoutedEventArgs e)
        {
            Thread th = new Thread(Counter);
            th.Start();
        }

b窗口

a.Counter();
  • 写回答

5条回答 默认 最新

  • 90e家 2020-12-22 14:21
    关注

    事件用action方式传值不香么,把datePath.items 或者datePath.datasouce 都可以作为集合直接用action传走的

    评论

报告相同问题?

悬赏问题

  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?
  • ¥15 乘性高斯噪声在深度学习网络中的应用
  • ¥15 运筹学排序问题中的在线排序
  • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
  • ¥30 求一段fortran代码用IVF编译运行的结果
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛