コントロールにデータグリッドがあり(ここでは:DataGridSelectorControl)、ItemTemplate.actually を使用して列を作成したいのですが、実際には次のようなことをしたいと考えています:
<DataGrid x:Name="grd" ItemsSource="{Binding Source={StaticResource theSource}}" AutoGenerateColumns="False" >
<DataGrid.Columns>
<ItemsControl ItemsSource="{Binding DataGridColumnItems}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
</DataGrid.Columns>
</DataGrid>
DataGrid.Columns に ItemsControl を使用する方法はありますか? そして、私はこのコントロールを次のように使用したいので、それをしたい:(このコントロールのインスタンスを作成するたびに DataGridTextColumns を定義したい)
<control:DataGridSelectorControl Grid.Row="1">
<control:DataGridSelectorControl.DataGridColumnItems>
<DataGridTextColumn Header="نام" Width="20"></DataGridTextColumn>
<DataGridTextColumn Header="ParentID" Width="20"></DataGridTextColumn>
</control:DataGridSelectorControl.DataGridColumnItems>
</control:DataGridSelectorControl>
DataGridColumnItems はアタッシュ プロパティです。
public static readonly DependencyProperty DataGridTextColumnItemsProperty = DependencyProperty.Register("DataTextColumnItems", typeof(DataGridColumn), typeof(DataGridSelectorControl));
public DataGridColumn DataGridColumnItems
{
get
{
return (DataGridColumn)GetValue(DataGridTextColumnItemsProperty);
}
set
{
SetValue(DataGridTextColumnItemsProperty, value);
}
}