Ich muss alte und neue Werte in meiner ListView zeigen, wenn der Datensatz geändert wird. Ich meine jede Zelle sollte neuen Wert und alten Wert zeigen. Denn jetzt mache ich so:Doppelte Werte in ListView-Zelle
<GridViewColumn.CellTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding MyValue}"/>
<TextBlock Margin="7,0,0,0" Text="{Binding old.MyValue}"/>
</StackPanel>
</DataTemplate>
</GridViewColumn.CellTemplate>
für die nächste Spalte wird es sein:
<GridViewColumn.CellTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding MySecondValue}"/>
<TextBlock Margin="7,0,0,0" Text="{Binding old.MySecondValue}"/>
</StackPanel>
</DataTemplate>
</GridViewColumn.CellTemplate>
Aber ich habe 10 Spalten und das ist nicht so interessant, viele Copy-Paste zu machen für alle 10 Spalten.
Irgendwelche Ideen, wie dies kompakter und besser gemacht werden kann?
Die ideale Variante I ist so etwas wollen:
<GridViewColumn.CellTemplate>
<DataTemplate>
<MySpecialWhatever NewValueText="{Binding MyValue}" OldValueText="{Binding old.MyValue}" >
</MySpecialWhatever>
</DataTemplate>
</GridViewColumn.CellTemplate>
Vielen Dank. Es scheint, das ist der einzige Weg. Obwohl ich hoffte, XAML nur Code zu verwenden, ohne C# und ohne neue Kontrolle zu erstellen. –
Kann ich diese Klasse irgendwie verwenden, wenn ich in einem Fall - TextBlock und in einem anderen Fall - Button verwenden möchte? –
Ich möchte das zweite Steuerelement ausblenden, wenn keine Daten darin enthalten sind. Ich habe hinzugefügt: öffentliches Objekt OldValueVisibility { get { return (OldValue == null)? Visibility.Collapsed: Visibility.Visible; } } } und binden Sie es wie Visibility = "{Binding OldValueVisibility}", aber es hilft nicht –