2015-05-19 73 views
3

我有一個應用程序具有多個選項卡,每個選項卡包含一個Datagrid包含我的數據庫中的數據。我有一個保存按鈕,可將所有數據網格寫入.csv文件。我想創建一個包含空數據網格的附加選項卡,這樣用戶可以鍵入信息,以便可以以相同的方式輸出信息。DataGrid與空數據表,以允許用戶輸入C#WPF

有沒有辦法將數據網格綁定到空數據表?還是有更好的解決方案,將允許用戶動態輸入變量的大量信息(somtimes一行,somtimes 10)

C#

DataTable dt_Call_Drivers = new DataTable(); 
Call_Drivers_DataGrid.ItemsSource = dt_Call_Drivers.DefaultView; 

XAML

     <DataGrid x:Name="Call_Drivers_DataGrid" ItemsSource="{Binding}" GridLinesVisibility="Horizontal" CanUserAddRows="true" AutoGenerateColumns="False" Margin="0,0,0,0"> 
          <DataGrid.ColumnHeaderStyle> 
           <Style TargetType="{x:Type DataGridColumnHeader}" BasedOn="{StaticResource MetroDataGridColumnHeader}"> 
            <Setter Property="HorizontalContentAlignment" Value="Center" /> 
           </Style> 
          </DataGrid.ColumnHeaderStyle> 
          <DataGrid.Columns> 
           <DataGridTextColumn Header="Case" Width ="90" Binding="{Binding Case}"> 
            <DataGridTextColumn.ElementStyle> 
             <Style> 
              <Setter Property="TextBlock.TextAlignment" Value="Center" /> 
             </Style> 
            </DataGridTextColumn.ElementStyle> 
           </DataGridTextColumn> 
          </DataGrid.Columns> 
         </DataGrid> 

回答

2

只是綁定數據網格ObservableCollection,定義你的類型。並設置CanUserAddRows = true。就這樣。

<DataGrid CanUserAddRows="True" AutoGenerateColumns="False" ItemsSource="{Binding SimpleCollection}"> 
     <DataGrid.Columns> 
      <DataGridTextColumn Binding="{Binding A}"></DataGridTextColumn> 
      <DataGridTextColumn Binding="{Binding B}"></DataGridTextColumn> 
      <DataGridTextColumn Binding="{Binding C}"></DataGridTextColumn> 
     </DataGrid.Columns> 
    </DataGrid> 


    public class SimpleClass 
    { 
     public string A { get; set; } 
     public string B { get; set; } 
     public string C { get; set; } 
    } 

private ObservableCollection<SimpleClass> _simpleCollection; 
public ObservableCollection<SimpleClass> SimpleCollection 
{ 

get { return _simpleCollection ?? (_simpleCollection = new ObservableCollection<SimpleClass>());  } 

set { _simpleCollection = value; } 
} 
+0

非常感謝!這很有幫助 –