如何在XAML中的DataGrid之外定义Silverlight DataGrid的列?

时间:2011-07-28 20:41:39

标签: silverlight xaml datagrid

我有一个嵌套在UserControl中的DataGrid,如下所示:

<UserControl x:Class=MyUserControl>
    <Grid x:Name="LayoutRoot">
        <datagrid:DataGrid x:Name=myDataGrid />
    </Grid>
</UserControl>

我在Silverlight应用程序中使用此UserControl:

<UserControl x:Class=MainPage>
    <Grid x:Name="LayoutRoot">
        <MyUserControl/>
    </Grid>
</UserControl>

无论如何我可以在XAML中从MainPage定义MyUserControl中myDataGrid的DataGrid.Columns属性吗?我尝试传递一个以DataGrid为目标的样式,但我无法将Columns用作Setter中的属性。

1 个答案:

答案 0 :(得分:2)

当然可以。向您的控件添加一个公开datagrid列的属性:

public ObservableCollection<DataGridColumn> MyColumns
{
    get { return myDataGrid.Columns; }
}

就是这样。现在你可以写下这样的东西:

<my:GridControl>
    <my:GridControl.MyColumns>
        <sdk:DataGridTextColumn Header="Nombre" />
        <sdk:DataGridTextColumn Header="Edad" />
    </my:GridControl.MyColumns>
</my:GridControl>