[英]Best practice for closing tags in WPF
我目前正在閱讀C#2008中的Pro WPF一書,我是WPF的新手。
我基本上對最佳實踐有疑問,因為我想編寫其他開發人員普遍接受的代碼。
我在整本書中都看到,作者使用不同的方法來關閉不同目的的標簽。 我舉個例子:
在創建網格並定義行和列時,他總是編寫與此類似的代碼:
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
所以他關閉了標簽內的標簽“inline”,因為標簽沒有任何內容(我不確定內聯是否是正確的措辭)
但是大多數其他地方,即使不是這樣的內容,他也會給出一個結束標記
<TextBlock Text="{Binding Path=CategoryName}"></TextBlock>
我也看到,如果他在ColumnDefinition
案例中定義了任何屬性,他也會像這樣添加結束標記
<ColumnDefinition Width="Auto"></ColumnDefinition>
我的問題很簡單。 有沒有理由這樣寫? 我認為省略結束標簽看起來更整潔,因為在所有情況下都沒有內容。
這只是個人偏好的問題,還是有其他理由在兩者之間切換。
這是個人偏好,因為代碼是等價的。
但是,我可以看到
<TextBlock Text="{Binding Path=CategoryName}"></TextBlock>
如果該行最初被寫為:
<TextBlock Text="{Binding Path=CategoryName}">
some other xaml
</TextBlock>
但隨后“其他xaml”被刪除(無論出於何種原因)
你應該做的是提出一個標准並堅持下去(你決定去哪個方向)。
這更像是一個XML而不是WPF的東西,並且大多數並不重要,因為它們只是解析XML。 一般情況下,雖然我建議在沒有任何子元素時始終使用“空元素”(<tag />),因為它看起來更干凈並且可以防止標記內容中出現任何意外的空格。
他可能只是偶然地在書中不一致
添加其中沒有元素的控件時,最好通過自動關閉標記“/>”而不是硬結束標記來關閉它。
例如。
<Label>
<Label.Content>
<TextBlock>
Test!
</TextBlock>
</Label.Content>
</Label>
<TextBlock Text={Binding Name}/>
在我看來,這更像是個人品味。 但話說回來,在某些情況下,您不得不使用<keyword></keyword>
等符號。 所以,除非被迫,否則你沒有理由以某種方式寫作。 我將此問題添加到我最喜歡的列表中,看看是否有任何特殊指南。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.