2017-08-21 15 views
0

私はWPFで新しいですwpfのデータグリッドの右側にボタン列を追加する方法

私はデータベースからのデータを表示するためにデータグリッドを持っています。私はボタンを表示するために、データグリッドの右側に列が必要です。

<DataGrid x:Name="DG_search_by_device" ColumnWidth="*" CanUserAddRows="False" ItemsSource="{Binding}"> 
             <DataGrid.Columns> 
              <DataGridTemplateColumn> 
               <DataGridTemplateColumn.CellTemplate> 
                <DataTemplate> 
                 <StackPanel Orientation="Horizontal"> 
                  <Button x:Name="btn_serch_device_History" Content="History"></Button> 
                  <Button x:Name="btn_search_device_Details" Content="Details"></Button> 
                 </StackPanel> 
                </DataTemplate> 
               </DataGridTemplateColumn.CellTemplate> 
              </DataGridTemplateColumn> 
             </DataGrid.Columns> 
            </DataGrid> 

これは私がxamlコードで行ったことです。

private void Search_Device_Click(object sender, RoutedEventArgs e) 
    { 
     DataTable _return;    
     Search_device urlData = new Search_device(int.Parse(Device_ID.Text)); 
     _return = Calibration.PrepareCommand.Search_by_device(urlData); 

     DataView view = new DataView(_return); 
     DataTable _data = view.ToTable("Selected", false, "LastCalibratedDate","SensorReplacement"); 
     _data.Columns["LastCalibratedDate"].ColumnName = "Last Calibrated Date"; 
     _data.Columns["SensorReplacement"].ColumnName="Sensor replacement"; 
     try 
     { 
      if (_data.Rows.Count > 0) 
      { 
       Nodata.Visibility = Visibility.Hidden; 
       DG_search_by_device.Visibility = Visibility.Visible; 
       DG_search_by_device.ItemsSource = _data.DefaultView; 
      } 
      else 
      { 
       Nodata.Visibility = Visibility.Visible; 
       DG_search_by_device.Visibility = Visibility.Hidden; 
      } 

     } 
     catch (Exception ex) 
     { 
      MessageBox.Show(ex.ToString()); 
     } 
    } 

これは私のcsファイルです。

私は、データグリッドの左側にボタンがあります。しかし、私は右手側にそれが必要です。どうやってやるの?

答えて

0

ハンドルDataGridのハンドルAutoGeneratedColumnsのイベント。

private void DG_search_by_device_AutoGeneratedColumns(object sender, EventArgs e) 
     { 
      var dgrd = sender as DataGrid; 
      { 
       var c = dgrd.Columns[0]; 
       dgrd.Columns.RemoveAt(0); 
       dgrd.Columns.Add(c); 
      } 
     } 
+0

が働いた。感謝somuch –

+0

私は2つの異なる列に2つのボタンがある場合。右の列に両方の列が必要です。私は何ができますか? –

+0

diffカラムで同じアプローチを使用する – AnjumSKhan

関連する問題