2009-10-07 99 views
0

是否有任何方式動態地添加按鈕控件(以及列名)到WPFDataGrid列,?如何動態地將Button添加到WPF Datagrid列中?

通過單擊標題按鈕,彈出窗口將打開。

這個按鈕的生成是動態的,它將由代碼隱藏決定,對於某些列標題需要添加,有些不需要添加。

回答

1

也許與DataTemplate選擇器?事情是這樣的:

XAML:

<ListView ItemsSource="{Binding}"> 
    <ListView.View> 
     <GridView> 
      <GridViewColumn> 
       <GridViewColumn.HeaderTemplateSelector> 
        <local:MyColumnHeaderSelector /> 
       </GridViewColumn.HeaderTemplateSelector> 
      </GridViewColumn> 
     </GridView> 
    </ListView.View> 
</ListView> 

C#:

public class MyColumnHeaderSelector : DataTemplateSelector 
{ 
    public override DataTemplate SelectTemplate(object item, DependencyObject container) 
    { 
     if(yourCondition == true) 
     { 
      return (DataTemplate)App.Current.MainWindow.FindResource("ColumnTemplateWithButton"); // this DataTemplate is defined in the resources of your window 
     } 
     else 
     { 
      return (DataTemplate)App.Current.MainWindow.FindResource("ColumnTemplateWithoutButton"); // this DataTemplate is defined in the resources of your window 
     } 
    } 
}