Язык программирования C#9 и платформа .NET5
Часть 558 из 642 Информация о книге
<Grid IsSharedSizeScope="True" Margin="5,0,5,5"><Grid.RowDefinitions><RowDefinition Height="Auto"/><RowDefinition Height="Auto"/></Grid.RowDefinitions><Grid Grid.Row="0"><Grid.ColumnDefinitions><ColumnDefinition Width="Auto"SharedSizeGroup="CarLabels"/><ColumnDefinition Width="*"/></Grid.ColumnDefinitions><Label Grid.Column="0" Content="Vehicle"/><ComboBox Name="cboCars" Grid.Column="1"DisplayMemberPath="PetName" /></Grid><Grid Grid.Row="1" Name="DetailsGrid"><Grid.ColumnDefinitions><ColumnDefinition Width="Auto"SharedSizeGroup="CarLabels"/><ColumnDefinition Width="*"/></Grid.ColumnDefinitions><Grid.RowDefinitions><RowDefinition Height="Auto"/><RowDefinition Height="Auto"/><RowDefinition Height="Auto"/><RowDefinition Height="Auto"/><RowDefinition Height="Auto"/></Grid.RowDefinitions><Label Grid.Column="0" Grid.Row="0" Content="Id"/><TextBox Grid.Column="1" Grid.Row="0" /><Label Grid.Column="0" Grid.Row="1" Content="Make"/><TextBox Grid.Column="1" Grid.Row="1" /><Label Grid.Column="0" Grid.Row="2" Content="Color"/><TextBox Grid.Column="1" Grid.Row="2" /><Label Grid.Column="0" Grid.Row="3" Content="Pet Name"/><TextBox Grid.Column="1" Grid.Row="3" /><StackPanel Grid.Column="0" Grid.ColumnSpan="2" Grid.Row="4"HorizontalAlignment="Right" Orientation="Horizontal" Margin="0,5,0,5"><Button x:Name="btnAddCar" Content="Add Car" Margin="5,0,5,0" Padding="4, 2" /><Button x:Name="btnChangeColor" Content="Change Color" Margin="5,0,5,0"Padding="4, 2"/></StackPanel></Grid></Grid>Окно должно напоминать показанное на рис. 28.1.
Свойство
элемента управленияIsSharedSizeScopeзаставляет дочерние сетки разделять размеры. ЭлементGrid, помеченный какColumnDefinitions, автоматически получит ту же самую ширину без каких-либо потребностей в программировании. В рассматриваемом примере, если размер метки Pet Name (Дружественное имя) изменяется из-за более длинного значения, тогда соответствующим образом корректируется и размер колонки Vehicle (Автомобиль), который находится в другом элементе управленияSharedSizeGroup, сохраняя аккуратный внешний вид окна.GridЩелкните правой кнопкой мыши на имени проекта в окне Solution Explorer, выберите в контекстном меню пункт Add►New Folder (Добавить►Новая папка) и назначьте новой папке имя
. Создайте в новой папке файл классаModels. Первоначально код класса выглядит так:Car.cspublic class Car{public int Id { get; set; }public string Make { get; set; }public string Color { get; set; }public string PetName { get; set; }}Добавление привязок и данных
Следующий шаг заключается в создании операторов привязки для элементов управления. Вспомните, что конструкции привязки данных вращаются вокруг контекста данных, который может быть установлен в самом элементе управления или в родительском элементе управления. Здесь контекст будет установлен в элементе
, так что каждый содержащийся внутри него элемент управления унаследует результирующий контекст данных.DetailsGridУстановите свойство
в свойствоDataContextэлементаSelectedItem. Модифицируйте определение элементаComboBox, содержащего элементы управления с информацией об автомобиле, следующим образом:Grid
