Ich habe eine WPF-Anwendung mit einem Tab-Steuerelement zeigt Bilder anstelle von Text auf dem Tabitem. Jetzt möchte ich das Ganze neu schreiben und Prisma verwenden. Ich habe ein Beispiel gefunden, aber es gibt nur eine Texteigenschaft, die an das Tabitem gebunden ist. Wie kann ich ein Bild durch Bindung an ein Viewmodel anzeigen (Jedes Modul hat eine Registerkarte).WPF & Prisma MVVM und Tabitem mit einem Bild
-1
A
Antwort
0
Wenn Sie die Elemente an das TabControl binden, verwenden Sie ItemsSource. Die ItemTemplate legt fest, was in der Kopfzeile der Registerkarte angezeigt wird. Das ContentTemplate legt fest, was im Registerbereich angezeigt wird.
Ansicht Modelle
public class ShellViewModel : BindableBase
{
public ObservableCollection<ItemViewModel> Items
{
get;
} = new ObservableCollection<ItemViewModel>();
public ShellViewModel()
{
Items.Add(new ItemViewModel { Name = "First", ImageUri = new Uri("http://placehold.it/50x50") });
Items.Add(new ItemViewModel { Name = "Second", ImageUri = new Uri("http://placehold.it/40x40") });
Items.Add(new ItemViewModel { Name = "Third", ImageUri = new Uri("http://placehold.it/30x30") });
}
}
public class ItemViewModel : BindableBase
{
private string _name;
private Uri _imageUri;
public string Name
{
get => _name;
set => SetProperty(ref _name, value);
}
public Uri ImageUri
{
get => _imageUri;
set => SetProperty(ref _imageUri, value);
}
}
Ansicht
<Window x:Class="WpfApp4.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WpfApp4"
xmlns:viewModels="clr-namespace:WpfApp4.ViewModels"
mc:Ignorable="d"
Title="MainWindow" Height="350" Width="525">
<Window.DataContext>
<viewModels:ShellViewModel />
</Window.DataContext>
<Grid>
<TabControl ItemsSource="{Binding Items}">
<TabControl.ItemTemplate>
<DataTemplate>
<Image Source="{Binding ImageUri}" Height="20"></Image>
</DataTemplate>
</TabControl.ItemTemplate>
<TabControl.ContentTemplate>
<DataTemplate>
<TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" Text="{Binding Name}"></TextBlock>
</DataTemplate>
</TabControl.ContentTemplate>
</TabControl>
</Grid>
Der obige Code drei (3) Registerkarten mit dem angegebenen Bild in der Registerkarte Kopfzeile zeigen. Ich habe den Inhalt mit nur Text getäuscht.
Verwandte Themen
- 1. WPF TabItem - Bild Bindung - mit Trigger
- 2. Navigieren durch TabItem mit MVVm
- 3. WPF MVVM: Binden Sie ein anderes ViewModel an jedes TabItem?
- 4. Prisma/mvvm: Bindung Spalten Datagrid
- 5. WPF TabItem Header Bilder
- 6. Ausgewähltes ViewModel von WPF datagrid an neues TabItem MVVM übergeben
- 7. C# WPF MVVM TabItem HeaderTemplate wird nicht funktionieren?
- 8. Bild mit Trigger ändern WPF MVVM
- 9. WPF vertikale TabItem Rahmenproblem
- 10. Prisma vs MVVM Licht für UWP-Anwendung
- 11. MVVM, WPF und Validierung
- 12. Korrekte Datenbindung in WPF mit TabControl und MVVM
- 13. WPF TabItem Header-Styling
- 14. Wie kann ich Controls/UIElements von einem TabItem selbst in einem TabItem oder TabControl mit wpf erhalten?
- 15. Wpf UserControl und MVVM
- 16. WPF TabControl mit ViewModel aktiviert TabItem Inhaltserstellung
- 17. Erforschen Sie ein WPF TabItem
- 18. Binden eines TabItem in WPF
- 19. Verwechslung mit WPF MVVM
- 20. WPF MVVM und Unit Testing
- 21. WPF mit MVVM und DataAnnotations, Validierungsfehler in einem Usercontrol
- 22. WPF TabItem Listbox dynamische Bindung
- 23. WPF TabItem Header Styling ONLY
- 24. WPF hinzufügen TabItem mit Verhalten programmatisch
- 25. Umgang TreeViews Kontextmenü mit WPF und MVVM
- 26. Verwalten von persistenten Navigationsansichten (MVVM, WPF)
- 27. WPF MVVM, ICommand und Repositories
- 28. wie zwischen TabItem mit Links und Rechts Tasten in WPF
- 29. WPF-Datenbindung mit ResourceDictionary MVVM
- 30. Prisma (Silverlight)
Danke. Ich weiß, wie es geht, wenn ich Tabitems selbst nach Code oder XAML erzeuge. Aber meine Frage war über PRISM. Die Tabitems werden von PRISM beim Navigieren zu einer Sicht erstellt. –