Почему моя сеть WPF не содержится в его контейнере?
-
03-10-2019 - |
Вопрос
У меня есть контроль пользователя, и внутри него у меня есть два элемента управления: 1) контроль критериев поиска (пользовательский контроль пользователя) и 2) Teleerik RadgridView.
Кроме того, у меня есть окно, которое является оболочкой для моего приложения, и в ней существует три региона. Когда это окно открывается, я нажал кнопку, и упомянутый выше пользовательский элемент управления вставляется в один из регионов. Теперь, когда пользовательский элемент управления загружен, я редактирую свои критерии поиска и щелкните кнопку, чтобы заполнить мою сетку с помощью около 1000 записей. Проблема в том, что полоса прокрутки сетки не становится включена, потому что управление сеткой максимизирует, чтобы соответствовать размеру всех данных который проходит мимо экрана.
Единственный способ, которым это работает должным образом - это установить свойство высоты сетки в абсолютное значение, но затем сетка не размещает с окном.
Я пробовал все, о чем я могу подумать: когда в сетке я установил ряд def размер до 200 *, я положил сетку в панель обертывания, я положил ее в докпанель, установите вертикаль док-станции Панель на панель стеки.
Оболочка:
<Window x:Class="WTS.CGCApplicationInterface.CGCApplicationShellView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:cal="http://www.codeplex.com/CompositeWPF"
xmlns:inf="clr-namespace:WTS.CGCApplicationInterface.Infrastructure;assembly=WTSCGCApplicationInterface.Infrastructure"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300" Width="750" Height="480"
Title="CGC Interface Window">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="200*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<ItemsControl cal:RegionManager.RegionName="MenuRegion" Grid.Column="0" Grid.ColumnSpan="2" Grid.Row="0" />
<ItemsControl cal:RegionManager.RegionName="SwitchboardRegion" Grid.Column="0" Grid.Row="1" />
<ItemsControl cal:RegionManager.RegionName="MainRegion" Grid.Column="1" Grid.Row="1" />
</Grid>
Управление пользователями:
<UserControl x:Class="WTS.CGCApplicationInterfaceMVVM.Views.Oncor.OncorTimesheetCGC"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation"
xmlns:wtsControls="clr-namespace:WTS.CGCApplicationInterface.UserControls;assembly=WTSCGCApplicationInterface.Infrastructure"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="600" Background="Red">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="200*" />
</Grid.RowDefinitions>
<wtsControls:CGCQueryUserControl Grid.Row="0"/>
<telerik:RadGridView ItemsSource="{Binding Path=Timesheets}" AutoGenerateColumns="False" Grid.Row="1"
ScrollViewer.VerticalScrollBarVisibility="Visible">
<telerik:RadGridView.Columns>
<telerik:GridViewToggleRowDetailsColumn></telerik:GridViewToggleRowDetailsColumn>
<telerik:GridViewDataColumn Header="MyField1" UniqueName="AssociatedObject.MyField1" IsVisible="False" />
<telerik:GridViewDataColumn Header="MyField2" UniqueName="AssociatedObject.MyField2" IsVisible="False" />
Решение
Я хотел бы получить очки за ответ на мой собственный вопрос. Я понимаю, что это можно было воспользоваться. Тем не менее, в моей оболочке я изменил область itemsControl в ContentControl, и он отлично работает.