簡體   English   中英

在WPF中關閉標記的最佳實踐

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM