2012-01-04 52 views
0

有人可以說Markup Extensions是XAML合併程序編程的方式嗎?你認爲這個陳述的侷限性是什麼?標記擴展,XAML合併程序編程的方式?

例如,如果您將其與純XML進行比較,則標記擴展名在某種程度上類似於「操作元素」,它們不是對象樹的一部分。

回答

0

一些標記擴展只是描述什麼可以更廣泛地使用標籤來完成的更加到位的方式(這樣它們的用法是聲明的地獄):

<TextBox Text="{Binding Path=Foo}"> 

相當於

<TextBox> 
    <TextBox.Text> 
    <Binding Path="Foo"> 
    </TextBox.Text> 
</TextBox> 

至於一般的擴展......見here。 {} -Syntax只是指示編譯器使用相應擴展類型的實例來處理它們之間的代碼。當然,這是面向對象的代碼,永遠不會是程序性的。信不信由你 - 甚至M $的人都知道如何正確編碼!

0

不,這是純粹的聲明。這絕不是程序性的。

+0

但在幕後,不是標記擴展程序代碼,還是我搞砸了什麼? – mihajlv 2012-01-04 04:20:47

+1

編譯器(及其擴展)的實現方式勢在必行,這不會使XAML標記本身成爲命令式編程語言。你可以描述你的窗戶是怎樣的,他們擁有什麼樣的屬性,資源字典中有什麼項目,你永遠不會寫出如何繪製窗口,如何設置屬性,項目是如何放置在資源字典中的。標記擴展只是一個擴展,你仍然聲明你正在使用它們,而不是它們應該如何實現。 – 2012-01-04 04:35:26

+0

我看到你在說什麼,我在想的是,如果你比較純XML,Markup擴展就像「action elements」一樣,它們不是對象樹的一部分。 – mihajlv 2012-01-04 04:43:17

相關問題