zoukankan      html  css  js  c++  java
  • [WPF Bug清单]之(12)——与自定义Attached Property相关的Binding Path运行时错误

    我们都知道DataBinding的格式是这样的:

    {Binding Path=PropertyName}

    其中的Path=这几个字是可以省略的。从而简写成:

    {Binding PropertyName}

    这个行为也在MSDN上面特别介绍过。

    本文所指“解析错误”是指:当Property自定义AttachedProperty时,第二种写法会产生运行时错误。如下代码所示:

    Demo Code
    <Window x:Class="BindingPathBug.DemoWindow"
            xmlns
    ="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x
    ="http://schemas.microsoft.com/winfx/2006/xaml"
            xmlns:local
    ="clr-namespace:BindingPathBug"
            Title
    ="{Binding (ToolTipService.ToolTip), ElementName=button}"
            Height
    ="300" Width="300">
     
    <Button x:Name="button"
              ToolTipService.ToolTip
    ="Tooltip"
              Content
    ="{Binding (local:ContentService.Content), ElementName=button}"
              local:ContentService.Content
    ="Button Content"/>
    </Window>

    其中,第一个绑定是可以正确运行的。而第二个绑定是不能正确运行的。必须要写成下面这样才行。

    Content="{Binding Path=(local:ContentService.Content), ElementName=button}"

    这个应该是Binding Markup Extension的解析错误。整个程序可以从这里下载。

    有些人(包括我)在Binding中都会把“Path”这个关键词省略掉,然而就在Bindingcustom attached property时屡试都爽!可就是不知道问题出在哪。最后无意中发现加上“Path”就好了,然后就想问候一下微软的DevQA

    好消息是这个Bug.NET 4.0 Beta2中已经Fix了。毕竟整个XAML解析都重写了。

  • 相关阅读:
    Android Studio快速定位当前文件所在的位置
    LeetCode:Search Insert Position
    apk当安装程序将文件复制到手机自带的指定文件夹
    《UNIX级别编程环境》注意读出信号(2)
    iOS:删除小程序
    百度CSND博客在搜索栏中显示图片
    HDU4893:Wow! Such Sequence!(段树lazy)
    Google I/O 2014? No,Android I/O 2014
    Android Push Notifications using Google Cloud Messaging (GCM), PHP and MySQL
    自己动手写CPU 笔记
  • 原文地址:https://www.cnblogs.com/nankezhishi/p/bindingPathToAttachedPropertyBug.html
Copyright © 2011-2022 走看看