Я новичок в WPF, и я создаю элемент управления. Этот элемент управления содержит DataGrid и некоторые другие элементы управления WPF.Как открыть элемент управления в XAML
Я создал свой контроль, как показано ниже:
<UserControl x:Class="MyControls.MyControl"
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"
mc:Ignorable="d"
d:DesignHeight="329" d:DesignWidth="535" >
<Grid>
<DataGrid Margin="6,25,6,35" Name="dataGrid" SelectionUnit="CellOrRowHeader" x:FieldModifier="public" HeadersVisibility="All"/>
<OtherControl HorizontalAlignment="Left" x:Name="otherControl" Height="34" VerticalAlignment="Bottom" Width="523" x:FieldModifier="private"/>
<Label Content="caption" Height="24" HorizontalAlignment="Left" Name="captionLabel" VerticalAlignment="Top" Foreground="#FF2626D1" x:FieldModifier="private"/>
</Grid>
</UserControl>
Таким образом, все идет хорошо до сих пор, а затем создать контейнер UserControl, который имеет в нем мой контроль, созданный ранее:
<UserControl x:Class="MyContainers.MyContainer"
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"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300" xmlns:my="clr-namespace:MyControls">
<Grid>
<my:MyControl>
</my:MyControl>
</Grid>
Что я не могу сделать, это следующее:
<my:MyControl>
<my:MyControl.dataGrid>
</my:MyControl.dataGrid>
</my:MyControl>
Я ранее задал свойство datagrid FieldModifier
как public
, чтобы получить к нему доступ в другом xaml, но это вызывает ошибку в визуальной студии.
Мне нужно «разоблачить» мою dataGrid, чтобы добавить столбцы и их стили.
Я хотел бы быть в состоянии сделать что-то вроде этого:
<my:MyControl.dataGrid.Columns >
<DataGridTextColumn />
<DataGridTextColumn />
...
<DataGridTextColumn />
</my:MyControl.dataGrid.Columns>
Итак, не достаточно, чтобы установить свойство DataGrid по FieldModifier
public
, как?
Нужно ли мне что-то делать? Как я могу это достичь? Возможно ли это?
Надеюсь, кто-то может мне помочь. Заранее спасибо.
Две быстрые мысли, для стартера вы назвали свою сетку данных 'dataGrid', а не' DataGrid'. Во-вторых, вы не добавляете столбцы непосредственно в datagrid, вы не добавляете столбцы непосредственно в сетку, вы добавляете их в свойство 'DataGrid.Columns', поэтому можете попробовать:' ', я не уверен, что это сработает или нет, я никогда не пробовал делать что-то подобное. –
CodingGorilla
@CodingGorilla Я даже не могу получить доступ к '' –
Dante
@Danta Когда вы говорите «не может даже получить доступ», что это значит, вы получаете ошибку компиляции/времени выполнения? Если так, то, что это? – CodingGorilla