2010-11-19 6 views
3

私は現在、Pro WPF in C#2008という本を読んでおり、私はWPFの初心者です。WPFのタグを閉じるベストプラクティス

他の開発者が一般的に受け入れているコードを記述したいので、基本的にベストプラクティスに関する質問があります。

著者はさまざまな目的でタグを閉じるさまざまな方法を使用しています。

<Grid.ColumnDefinitions> 
    <ColumnDefinition /> 
    <ColumnDefinition /> 
</Grid.ColumnDefinitions> 

そこで彼は、タグ内のタグ「インライン」を閉じます。

グリッドを作成し、行と列を定義し、彼は常に次のようなコードを書く:私は例をあげますタグは任意のコンテンツを持っていないので、(インラインこのため、正しい言葉遣いであれば、私はよく分からない)

しかし、他のほとんどの場所は、彼はそれがこの

<TextBlock Text="{Binding Path=CategoryName}"></TextBlock> 
ようには内容ません場合でも、終了タグを配置します

私はまた、彼はColumnDefinition場合に任意の属性を定義した場合、彼はまた、私の質問は単純である。この

<ColumnDefinition Width="Auto"></ColumnDefinition> 

のように終了タグを追加することを参照してください。このように書く理由がありますか?終了タグを省略するともっときちんとしているように思えますが、すべての場合に内容がありません。

これは単に個人的な好みの問題ですか、または2つの間で切り替える理由がありますか?

+0

ここで回答を選ぶのは難しいですが、みんなそれは単なる個人的な好みだと思うようです。あなたの努力に感謝します。 –

答えて

1

これはWPFのものよりもXMLのことであり、XMLを解析するだけなのでほとんど問題ではありません。私はいつも "空の要素"(<タグ/ >)を使用することをお勧めしますが、子供の要素がない場合は、それはきれいに見え、タグの内容に偶然空白ができないようにするためです。

代わりにハード終了タグの「/>」自己終了タグで、それを閉じるために、より良い、それの内部要素を持たないコントロールを追加するとき、彼は事故

0

私の意見では、それはもっと個人的な好みです。しかし、それを言って、<keyword></keyword>のような表記法を余儀なくされるいくつかのシナリオがあります。それで、強制されなければ、あなたは一方的に、あるいは他の方法で書くべき理由がありません。この質問をお気に入りのリストに追加して、特別なガイドラインがあるかどうかを確認しています。

+0

どのようなシナリオで、そのタイプの構文を使用する必要がありますか? –

+0

簡単な例は、グリッドです。グリッド内には複数のコントロールがありますが、見ることができるように、セルフクローズタグとして記述すると動作しません。 –

2

コードは同等であるため、個人的な好みです。

(何らかの理由で)削除され

<TextBlock Text="{Binding Path=CategoryName}"> 
    some other xaml 
</TextBlock> 

が、その後、「他のXAML」:

しかし、私はラインはもともとのように書かれている場合

<TextBlock Text="{Binding Path=CategoryName}"></TextBlock> 

約来ることがわかります

あなたがすべきことは、標準を思いついてそれに固執することです。

0

により、本の中でおそらくちょうど矛盾です。

例えば、

<Label> 
    <Label.Content> 
     <TextBlock> 
      Test! 
     </TextBlock> 
    </Label.Content> 
</Label> 


<TextBlock Text={Binding Name}/> 
関連する問題