私はWPFが初めてで、コントロールを作成しています。このコントロールには、DataGrid とその他の WPF コントロールが含まれています。
以下のようにコントロールを作成しました。
<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>
別の xaml でアクセスできるようにするために、以前にデータグリッドのプロパティをFieldModifier
asに設定しましたが、Visual Studio からエラーが発生します。public
列とそのスタイルを追加できるようにするには、dataGrid を「公開」する必要があります。
私はこのようなことができるようにしたいと思います:
<my:MyControl.dataGrid.Columns >
<DataGridTextColumn />
<DataGridTextColumn />
...
<DataGridTextColumn />
</my:MyControl.dataGrid.Columns>
FieldModifier
では、データグリッドのプロパティをasに設定するだけでは十分ではありませんpublic
か?
他に何かする必要がありますか?どうすればこれを達成できますか?これは可能ですか?
誰かが私を助けてくれることを願っています。前もって感謝します。