我有一个嵌套在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中的属性。
答案 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>