在XAML中为DataGridColumn设置d:DesignInstance

时间:2014-10-07 14:20:41

标签: c# wpf xaml datacontext

我的UserControl设计为DataContext

d:DataContext="{d:DesignInstance designtime:DesignViewModel, IsDesignTimeCreatable=True}"

它工作得很好。现在我DataGridItemsSource绑定到某些具有特定类型的集合。

我的问题是DataGridColumn。例如:

<DataGrid ItemsSource="{Binding OrderedPositions}">
    <DataGrid.Columns>
        <DataGridTextColumn Binding="{Binding PositionDefinitionId}" />

我认为当我有ItemsSource="{Binding OrderedPositions}"时,很明显,PositionDefinitionIdPropertyItem集合的OrderedPositions。但事实并非如此。

现在我必须在每个d:DesignInstance中明确设置DataGridColumn!但那不是一个好的解决方案:

<DataGridTextColumn Binding="{Binding PositionDefinitionId}"
    d:DataContext="{d:DesignInstance system:Position,
        IsDesignTimeCreatable=True}" />

在哪个位置是OrderedPositions集合的特定类型。有办法解决这个问题吗?这样我就不必在每列中明确设置d:DataContext了吗?

1 个答案:

答案 0 :(得分:1)

如果您明确地为DataTemplate的{​​{1}}实施CellTemplate,那么您将能够定义设计时间实例,例如以下示例适用于telerik GridViewDataColum(事实上它与telerik示例无关):

DataGridTextColumn