设为首页收藏本站
授权版本:2024_07
开启左侧

MVVM模式下HWindControlWPF控件如何绑定数据

[复制链接]
浅斟低唱 发表于 2024-4-16 17:01:06 | 显示全部楼层 |阅读模式
求助一下各路大神,
halcon为wpf提供的控件HWindControlWPF控件如何在MVVM模式下动态显示HOject图像?

奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
Criss 发表于 2024-4-16 19:11:10 | 显示全部楼层
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
 楼主| 浅斟低唱 发表于 2024-4-17 08:45:34 | 显示全部楼层
Criss 发表于 2024-4-16 19:11
https://www.51halcon.com/forum.php?mod=viewthread&tid=5947 帖子最后有写

但是这样做UI为什么没反应呢
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
Criss 发表于 2024-4-17 08:57:33 | 显示全部楼层
浅斟低唱 发表于 2024-4-17 08:45
但是这样做UI为什么没反应呢

我一直这么用的,你检查下你的窗口的上下文是否绑定了模型
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
 楼主| 浅斟低唱 发表于 2024-4-17 09:12:18 | 显示全部楼层
Criss 发表于 2024-4-17 08:57
我一直这么用的,你检查下你的窗口的上下文是否绑定了模型

我是这么做的(如图),这种情况就是没反应  而且Hobject转成Bitmap保存后,图片是没问题的,没有夸线程访问UI
下载1.png
下载2.png
下载3.png

奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
Criss 发表于 2024-4-17 11:57:36 | 显示全部楼层
XAML:
  1. <ha:HSmartWindowControlWPF x:Name="hSmartWindowControlWPF" HKeepAspectRatio="True" HDoubleClickToFitContent="False" HMoveContent="{Binding MoveContent}"
  2.                                    HZoomContent="{Binding ZoomContent, Converter={StaticResource zoomConverter}}" HMouseDown="ImageWindowEx_HMouseDown"
  3.                                    MouseRightButtonDown="hSmartWindowControlWPF_MouseRightButtonDown">
  4.             <ha:HIconicDisplayObjectWPF IconicObject="{Binding DisplayImage}" />
  5.             <ha:HIconicDisplayObjectWPF IconicObject="{Binding DisplayIcon}" />
  6.             <ha:HMessageDisplayObjectWPF HMessageText="{Binding DisplayText}" />
  7.         </ha:HSmartWindowControlWPF>
复制代码

窗口类:
  1. this.DataContext = _model; // 初始化模型后再绑定给窗口的数据上下文
复制代码

模型(继承DependencyObject和INotifyPropertyChanged):
  1. /// <summary>
  2. /// 显示图像
  3. /// </summary>
  4. private HObject _DisplayImage;
  5. public HObject DisplayImage { get => _DisplayImage; set { _DisplayImage = value; OnPropertyChanged(); } }

  6. /// <summary>
  7. /// 显示区域
  8. /// </summary>
  9. private HObject _DisplayIcon;
  10. public HObject DisplayIcon { get => _DisplayIcon; set { _DisplayIcon = value; OnPropertyChanged(); } }

  11. /// <summary>
  12. /// 显示文字
  13. /// </summary>
  14. private string _DisplayText;
  15. public string DisplayText { get => _DisplayText; set { _DisplayText = value; OnPropertyChanged(); } }
复制代码

针对模型对象的DisplayImage操作就可以看到图像了。
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
 楼主| 浅斟低唱 发表于 2024-4-17 16:01:29 | 显示全部楼层

谢谢 Criss大神的耐心解答 可能跟我用Prism框架有关系
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表