Złożony interfejs użytkownika wewnątrz ListBoxItem

W WPF mogę dodać dowolny interfejs użytkownikaListBoxItems, 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?

questionAnswers(2)

yourAnswerToTheQuestion