程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> WPF Bug清單之(12)

WPF Bug清單之(12)

編輯:關於.NET

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& quot;
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”這個關鍵詞省略掉,然而就在 Binding到custom attached property時屢試都爽!可就是不知道問題出在哪。 最後無意中發現加上“Path”就好了,然後就想問候一下微軟的Dev和QA。

好消息是這個Bug在.NET 4.0 Beta2中已經Fix了。畢竟整個XAML解析都重寫 了。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved