zoukankan      html  css  js  c++  java
  • 【WPF】Binding's Little Trick

    今天为了帮别人解决一个3D的问题,需要将自己以前做的一个Demo发过去,结果,原来能正常运行的程序现在无法运行了。调试时报出的错误是:

    “无法将“System.Windows.Media.Media3D.PerspectiveCamera”值分配到对象“System.Windows.Controls.Viewport3D”的属性“Camera”。 由于自其创建后已设置一个或多个本地值,因此当前本地值枚举已过时。  标记文件“Test3D;component/window1.xaml”中行45位置 19 的对象“_camera”处的错误。”

    关于Camera这块我的xaml是:

    Code

    根据异常的提示,我猜想是为了提高效率,XamlReader在创建Camera之后即将其Freeze了,因此不能再对其做更改。或者说,认为XamlReader的动作是一种“静态”的初始化操作,由于指定了ElementName,因此在初始化时直接去用_camera来作为绑定源进行绑定。

    好吧,那我就换种方式:

    Code

    其实本质上还是绑定到_camera,但是这次的绑定是延迟确立的,因此不会报错。

    PS:原来的代码是在.Net3.5 beta版下做的,现在是.Net3.5 SP1

  • 相关阅读:
    使用jquery-qrcode生成二维码
    ASP.NET匿名对象与集合的使用
    ASP.NET Core 之跨平台的实时性能监控
    centos7如何将docker容器配置成开机自启动
    linux 查看系统信息命令
    基于.NET CORE微服务框架 -浅析如何使用surging
    Docker 两键创建 ZeroTier moon 节点
    kubernetes-dashboard获取令牌登陆
    docker环境下使用gitlab,gitlab-runner 为 NetCore 持续集成
    Docker For MYSQL 8.0 特别注意修复数据库新的验证方式
  • 原文地址:https://www.cnblogs.com/RMay/p/1352156.html
Copyright © 2011-2022 走看看