ItemsControlがあります。 ItemsControlの最後の項目については、コンマを含むTextBoxを非表示にします。 XAMLを使用してこれを行う方法はありますか?Silverlight:ItemsControlの最後のアイテム
<ItemsControl>
<ItemsControl.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal" Visibility="{Binding Value, Converter={StaticResource NotEmpty}}">
<TextBlock Text="{Binding QuestionName}" />
<TextBlock Text=" " />
<TextBlock Text="{Binding Answer}"/>
<TextBlock Text=", " />
</StackPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<toolkit:WrapPanel Orientation="Horizontal" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
これで、ViewModelはそれを含むコレクションのイベントを変更する必要があります。これは世界の終わりではありませんが、面倒です。 –
@Jonathan Allenはい、そうですが、ほとんどのビューモデルでは少しコードが正常です。 ;-) ...これはかなり一般的なシナリオでは解決策がないことは残念です。あなたの例のようなテキストだけがあるなら、私はItemsControlの代わりに 'String.Join(...)'を行う単純な 'TextBlock'と' ValueConverter'を使うでしょう。 – herzmeister
実生活では、うまくいく書式設定の問題があります。それ以外の場合は、モデルまたはビューモデルで読み取り専用のプロパティにするだけです。 –