我看到奇怪的行爲。我有強烈的感覺,它是.net工具鏈中的一個錯誤。連接propery的奇怪的WPF錯誤
重現步驟:
- 創建WPF應用程序。
- 在該解決方案中創建類庫。
- 在類庫中定義一些公共類(可以爲空)。
- 在WPF應用程序中定義一些具有附加屬性和Window作爲目標類的類。
- 它附加到窗口,並提供價值
,你會得到錯誤:
The object 'Window' already has a child and cannot add ''. 'Window' can accept only one child.
如果你改變結構,使在同一裝配附加屬性和價值類(這個類可以是類庫或Wpf應用程序)它工作正常。
如果你把內容後的代碼也工作正常。這給了錯誤:
<Window x:Class="WpfApplication9.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:my="clr-namespace:ClassLibrary1;assembly=ClassLibrary1"
xmlns:my2="clr-namespace:ClassLibrary1"
Title="MainWindow" Height="350" Width="525">
<my2:Property.MyProperty>
<my:ValueClass />
</my2:Property.MyProperty>
<Grid>
</Grid>
</Window>
這不:
<Grid>
</Grid>
<my2:Property.MyProperty>
<my:ValueClass />
</my2:Property.MyProperty>
任何想法?
謝謝!
@Rick Sladkey我沒有清楚地理解第一段,你能稍微擴展一下嗎?此外,附加的屬性與XAML所在的組件相同。該值位於另一個屬性中。 – Andrey 2011-04-21 18:21:04
@安德雷:當然。我在答案中增加了一些。 – 2011-04-21 18:59:36
@Rick Sladkey謝謝,非常有趣。但是按照你的解釋,我不明白爲什麼它在兩個類中都有效:一個是屬性,一個是用於XAML所在的同一個程序集的值。 – Andrey 2011-04-21 19:03:15