Ich habe ein ItemsControl. Für das letzte Element in ItemsControl möchte ich die TextBox ausblenden, die das Komma enthält. Gibt es eine Möglichkeit, dies mit XAML zu tun?Silverlight: Letzter Artikel in einem 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>
Nun muss Ihr ViewModel auf Ereignisse in der Sammlung, die es enthält ändern. Dies ist nicht das Ende der Welt, aber es wird unordentlich. –
@ Jonathan Allen Ja das stimmt, aber ein wenig Code ist normal für die meisten View-Modelle. ;-) ... Es ist vielleicht schade, dass es für dieses ganz normale Szenario keine Lösung gibt. Wenn es in Ihrem Beispiel nur Text gibt, würde ich wahrscheinlich einen einfachen 'TextBlock' und einen' ValueConverter' verwenden, der anstelle eines ItemsControls ein 'String.Join (...)' ausführt. – herzmeister
Im wirklichen Leben habe ich einige funky Formatierungsprobleme, um durchzuarbeiten. Sonst hätte ich es nur zu einer schreibgeschützten Eigenschaft für das Modell oder View-Modell gemacht. –