Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf 如何使用ItemsControl分配<;DataGrid.Columns>;?_Wpf_Mvvm_Mvvm Light_Wpfdatagrid - Fatal编程技术网

Wpf 如何使用ItemsControl分配<;DataGrid.Columns>;?

Wpf 如何使用ItemsControl分配<;DataGrid.Columns>;?,wpf,mvvm,mvvm-light,wpfdatagrid,Wpf,Mvvm,Mvvm Light,Wpfdatagrid,我在一个控件中有一个datagrid(这里是:DataGridSelectorControl),我想使用ItemTemplate创建它的coulmns。实际上,我想这样做: <DataGrid x:Name="grd" ItemsSource="{Binding Source={StaticResource theSource}}" AutoGenerateColumns="False" > <DataGrid.Columns>

我在一个控件中有一个datagrid(这里是:DataGridSelectorControl),我想使用ItemTemplate创建它的coulmns。实际上,我想这样做:

  <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>
  public static readonly DependencyProperty DataGridTextColumnItemsProperty=DependencyProperty.Register("DataTextColumnItems", typeof(ObservableCollection<DataGridColumn>), typeof(DataGridSelectorControl)))); 
    public ObservableCollection<DataGridColumn> DataGridColumnItems 
    { 
        get 
        { 
            return (ObservableCollection<DataGridColumn>)GetValue(DataGridTextColumnItemsProperty); 
        } 
        set 
        { 
            SetValue(DataGridTextColumnItemsProperty, value); 
        } 
    }

  <DataGrid  x:Name="grd" ItemsSource="{Binding Source={StaticResource theSource}}" AutoGenerateColumns="False" Columns={Binding DataGridTextColumnItems, RelativeSource={RelativeSource AncestorType=DataGridSelectorControl}}> 
            </DataGrid> 

DataGrid.Columns属于ObservableCollection类型,请尝试以下操作:

  <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>
  public static readonly DependencyProperty DataGridTextColumnItemsProperty=DependencyProperty.Register("DataTextColumnItems", typeof(ObservableCollection<DataGridColumn>), typeof(DataGridSelectorControl)))); 
    public ObservableCollection<DataGridColumn> DataGridColumnItems 
    { 
        get 
        { 
            return (ObservableCollection<DataGridColumn>)GetValue(DataGridTextColumnItemsProperty); 
        } 
        set 
        { 
            SetValue(DataGridTextColumnItemsProperty, value); 
        } 
    }

  <DataGrid  x:Name="grd" ItemsSource="{Binding Source={StaticResource theSource}}" AutoGenerateColumns="False" Columns={Binding DataGridTextColumnItems, RelativeSource={RelativeSource AncestorType=DataGridSelectorControl}}> 
            </DataGrid> 
public static readonly dependencProperty DataGridTextColumnItemsProperty=dependencProperty.Register(“DataTextColumnItems”、typeof(ObservableCollection)、typeof(DataGridSelectorControl));
公共ObservableCollection DataGridColumnItems
{ 
得到
{ 
返回(ObservableCollection)GetValue(DataGridTextColumnItemsProperty);
} 
设置
{ 
SetValue(DataGridTextColumnItemsProperty,value);
} 
}