2011-07-28 68 views
0

我有嵌套在用戶控件像這樣一個DataGrid:如何在XAML中的DataGrid之外定義Silverlight DataGrid的列?

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

我用這個用戶控件在我的Silverlight應用程序:

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

反正我有可以定義裏面myDataGrid的DataGrid.Columns財產XAML中MainPage的MyUserControl?我嘗試傳遞一個以DataGrid爲目標的樣式,但我無法在Setter中將Columns用作屬性。

回答

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> 
+0

哇,這工作。解決方案比我更容易,雖然。非常感謝你! – fsong

+0

非常歡迎。 – NestorArturo