Złożony interfejs użytkownika wewnątrz ListBoxItem
W WPF mogę dodać dowolny interfejs użytkownikaListBoxItem
s, podającListBox
zItemTemplate
:
<ListBox ItemsSource="{Binding}">
<ListBox.ItemTemplate>
<DataTemplate>
<Border BorderThickness="1" BorderBrush="Gray" CornerRadius="8" Padding="4,0,4,0">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="50"/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<CheckBox Grid.Column="1" Content="Is Active Customer" IsChecked="{Binding IsActive}"/>
<Label Content="Id:" Grid.Row="1" HorizontalAlignment="Right"/>
<Label Content="Name:" Grid.Row="2" HorizontalAlignment="Right"/>
<TextBox Text="{Binding Id}" Grid.Row="1" Grid.Column="1"/>
<TextBox Text="{Binding Name}" Grid.Row="2" Grid.Column="1"/>
</Grid>
</Border>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
Prowadzi do:
Czy jest jakiś sposób na osiągnięcie tego samego w Windows Forms?
Edytować:
1 - Czy jest jakiś sposób na osiągnięcie tego samego w Windows Forms, wszystko przy zachowaniuseparation of concerns
pomiędzyView
iApplication Logic
w taki sposób, że gdybym później chciał całkowicie przedefiniowaćView
, Nie musiałbym refaktoryzować całej aplikacji?
2 - Czy winformy obsługują wiązanie danych w taki sposób, że każdy z moichListBoxItems
może być związany z kompleksemEntity
, ostatecznie włączając konwersję typu pośredniego z danych modelu na dane interfejsu użytkownika iz powrotem, w taki sposób, że nie muszę pisać ton kodu podstawowego, aby wypełnić widok, a następnie przekazać wartości interfejsu z powrotem do modelu, aby zapisać ?
3 - Co jeśli chciałbym przedstawićAnimations
w taki sposób, że obecnieSelectedItem
zaciekle rozwinąłby się w pewien rodzaj trybu „Szczegóły wiersza”, w którym można zobaczyć wiele dodatkowych informacji?
4 - Czy wsparcie winformsUI Virtualization
w taki sposób, że jeśli mam, powiedzmy, milion elementów, załadowanie interfejsu użytkownika nie trwa całe życie i renderuje tylko to, co jest widoczne na ekranie?
5 - Powiedz, że chciałem wprowadzić skomplikowaną grafikę do równania. Czy winformy renderują sprzętowo?
6 - Jak to wszystko zrobićResolution Independent
w taki sposób, że ListBox i cała jego zawartość rozciągają się do dostępnego rozmiaru okna w celu wykorzystania większych ekranów przy zachowaniu zgodności z mniejszymi?
7 - Sugerowano użycieListView
kontrola zamiast zwykłejListBox
, robiListView
zapewnić możliwość dodania do niego DOWOLNEGO UI? czy mogę dodać filmy, na przykład dla każdego przedmiotu? lub złożony szablon Master / Detail z Save and edit Buttons?
8 - Czy winformy zapewniają spójność i adekwatnośćModel dokumentu który umożliwia tworzenie wysokiej jakości dokumentów WYSIWYG i innych rodzajów bogatej zawartości?