У меня есть элемент управления сеткой, который я использую во всем приложении.Я хотел бы расширить контроль сетки, чтобы включить контекстное меню с одним пунктом "замораживать / размораживать столбцы".Если я решу использовать пользовательский элемент управления, я не смогу реализовать эту функцию внутри элемента управления - вместо этого мне придется реализовывать эту функцию везде, где я размещаю свой пользовательский элемент управления.Другой альтернативой является пользовательский элемент управления, в котором я могу реализовать все необходимые функции в элементе управления:
<Grid>
<dxg:GridControl Name="gridData" DataSource="{Binding}" dx:DXSerializer.StoreLayoutMode="All">
<dxg:GridControl.Resources></dxg:GridControl.Resources>
<dxg:GridControl.Columns />
<dxg:GridControl.View>
<dxg:TableView ShowGroupPanel="False" MouseRightButtonUp="TableView_MouseRightButtonUp">
<dxg:TableView.ColumnMenuCustomizations>
<dxb:BarButtonItem Name="freezeColButton" Content="Freeze Column(s)" dxb:BarItemLinkActionBase.ItemLinkIndex="0" ItemClick="freezeColButton_ItemClick" />
</dxg:TableView.ColumnMenuCustomizations>
</dxg:TableView>
</dxg:GridControl.View>
</dxg:GridControl>
</Grid>
Обратите внимание, тег TableView.ColumnMenuCustomization включает обработчик событий для функции замораживания / разблокирования.
Однако единственная проблема с пользовательским элементом управления заключается в том, что я не могу получить доступ к базовому свойству Grid Columns.Например, когда я помещаю свой пользовательский элемент управления (определенный выше) в окно, я получаю сообщение об ошибке (Ошибка 25: тег 'ExtendedGridControl.Columns' не существует в пространстве имен XML 'clr-namespace: UI.Controls'):
<Window>
...
<Grid>
<uc:ExtendedGridControl x:Name="extendedGridData" >
<uc:ExtendedGridControl.Columns>
<dxg::GridColumn FieldName="FieldA" Visible="True" />
...
</uc:ExtendedGridControl.Columns>
</uc:ExtendedGridControl>
</Grid
</Window>
Как мне открыть свойства GridControl?Любая помощь / предложения будут с благодарностью.