visual tutorial studio que puede hacer español ejemplos desventajas con wpf layout lob

tutorial - La mejor práctica de WPF para la ventana DataEntry



wpf vs windows forms (4)

Actualmente estoy jugando con WPF y ahora me pregunto cuál sería el diseño de una ventana de entrada de datos típica (más de 20 cuadros de texto y esas cosas).

atm estoy usando un objeto de cuadrícula como este (muestra básica)

<Grid Margin="2,2,2,2"> <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto"></ColumnDefinition> <ColumnDefinition Width="*"></ColumnDefinition> </Grid.ColumnDefinitions> <Grid.RowDefinitions > <RowDefinition Height="Auto"></RowDefinition> <RowDefinition Height="Auto"></RowDefinition> <RowDefinition Height="Auto"></RowDefinition> <RowDefinition Height="Auto"></RowDefinition> <RowDefinition Height="Auto"></RowDefinition> <RowDefinition Height="Auto"></RowDefinition> <RowDefinition Height="Auto"></RowDefinition> <RowDefinition Height="Auto"></RowDefinition> </Grid.RowDefinitions> <Label Grid.Row="0" Grid.Column="0">Vorname:</Label> <TextBox Grid.Row="0" Grid.Column="1" Text="{Binding Path=Surname, UpdateSourceTrigger=PropertyChanged}" ></TextBox> <Label Grid.Row="1" Grid.Column="0">Nachname:</Label> <TextBox Grid.Row="1" Grid.Column="1" Text="{Binding Path=ChristianName, UpdateSourceTrigger=PropertyChanged}"></TextBox> <Label Grid.Row="2" Grid.Column="0">Strasse (Wohnsitz):</Label> <TextBox Grid.Row="2" Grid.Column="1" Text="{Binding Path=Street1, UpdateSourceTrigger=PropertyChanged}"></TextBox> <Label Grid.Row="3" Grid.Column="0">Ort (Wohnsitz):</Label> <TextBox Grid.Row="3" Grid.Column="1" Text="{Binding Path=Town1, UpdateSourceTrigger=PropertyChanged}"></TextBox> <Label Grid.Row="4" Grid.Column="0">Postleitzahl (Wohnsitz):</Label> <TextBox Grid.Row="4" Grid.Column="1" Text="{Binding Path=PostalCode1, UpdateSourceTrigger=PropertyChanged}"></TextBox> <Label Grid.Row="5" Grid.Column="0">Bundesland (Wohnsitz):</Label> <TextBox Grid.Row="5" Grid.Column="1" Text="{Binding Path=State1, UpdateSourceTrigger=PropertyChanged}"></TextBox> <Label Grid.Row="6" Grid.Column="0">Land (Wohnsitz):</Label> <TextBox Grid.Row="6" Grid.Column="1" Text="{Binding Path=Country1, UpdateSourceTrigger=PropertyChanged}"></TextBox> <Label Grid.Row="7" Grid.Column="0">Zusatz (Wohnsitz):</Label> <TextBox Grid.Row="7" Grid.Column="1" Text="{Binding Path=AdditionalAdrInfo1, UpdateSourceTrigger=PropertyChanged}"></TextBox> </Grid>

básicamente, esto satisface todas mis necesidades de diseño, pero ¿qué sucede si deseo cambiar algo, como agregar un nuevo cuadro de texto en la fila 3?

actualmente tengo que cambiar cada propiedad Grid.Row superior a 3, pero esa no puede ser la forma prevista de WPF !?

¿Cómo organizan otros ventanas de entrada de datos complejas?

tia





Algunas personas usan StackPanel s anidado para "resolver" este problema, pero en mi humilde opinión simplemente presenta otro problema (código de hinchazón). Creo que la mejor manera de resolver esto es escribir su propio panel que coloque a los niños consecutivamente en columnas. Hice esto en un proyecto anterior y tiene una serie de ventajas:

  • Más legible y rápido XAML
  • Más fácil de mantener XAML
  • Un rendimiento más rápido

El uso se veía algo como esto:

<local:FieldPanel> <Label>Field 1:</Label> <TextBox/> <Label>Field 2:</Label> <TextBox/> <Label>Field 3:</Label> <TextBox/> </local:FieldPanel>