2016-09-29 1 views
0

Ich gruppierte meine Artikel (Produkte der Bestellung) aus der Datenbank mit DataGrid.Group, ich gruppierte es als Aufträge, so sieht es so aus: Bestellnummer: # {Hier habe ich echte ID aus der Datenbank platziert}, Beispiel Bestellnummer: # 10, und was ich jetzt tun möchte, ist die Schaltfläche neben dem Text, der im Dock-Panel enthalten ist, und wenn ich auf diese Schaltfläche klicke, möchte ich um etwas mit diesen Befehlen zu tun und weil ich bereits eine echte Auftrags-ID in der Kopfzeile habe, sollte ich sie irgendwie "nehmen", also kann ich hinter etwas wie Code: remove order, markiere es als continue oder so, hier ist wie Es sieht jetzt und unten ist auch Code:Wie bekomme ich Wert aus DockPanel auf DataGrid Wpf - Button Klicken Sie

<DataGrid.Columns > 
     <DataGridTextColumn Binding="{Binding ProductName}" ElementStyle="{StaticResource LeftAligElementStyle}"   Header="Product Name}" MinWidth="350" Foreground="White" FontSize="20" FontFamily="Verdana" /> 
     <DataGridTextColumn Binding="{Binding Quantity}"  ElementStyle="{StaticResource LeftAligElementStyle}"  Header="Quantity" MinWidth="200" Foreground="White"  FontSize="20" FontFamily="Verdana" /> 

    </DataGrid.Columns> 

    <DataGrid.GroupStyle> 
     <!-- Style for groups at top level. --> 
     <GroupStyle> 
      <GroupStyle.ContainerStyle> 
       <Style TargetType="{x:Type GroupItem}"> 
        <Setter Property="Template"> 
         <Setter.Value> 
          <ControlTemplate TargetType="{x:Type GroupItem}"> 
           <Expander IsExpanded="True" Background="Black" Opacity="0.7"> 
            <Expander.Header > 
             <DockPanel Height="50" Margin="0,0,0,0" Name="dockPanel" Width="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type DataGrid}}, Path=ActualWidth}"> 
              <Button Name="btnOrders" Content="Test" Margin="0,0,200,0" DockPanel.Dock="Right" /> 

              <TextBlock FontWeight="Normal" FontFamily="Verdana" FontSize="20" Height="25" Foreground="#83D744" Text="{Binding Path=Name,StringFormat= Order Number:# {0}}" /> 
             </DockPanel> 
            </Expander.Header> 
            <Expander.Content> 
             <ItemsPresenter /> 
            </Expander.Content> 
           </Expander> 
          </ControlTemplate> 
         </Setter.Value> 
        </Setter> 
       </Style> 
      </GroupStyle.ContainerStyle> 
     </GroupStyle> 
    </DataGrid.GroupStyle> 

-Code hinter:

public MainWindow() 
    { 
     try 
     { 


      InitializeComponent(); 


      this.WindowStartupLocation = WindowStartupLocation.CenterScreen; 
      this.WindowState = WindowState.Maximized; 

      CollectionViewSource collectionViewSource = new CollectionViewSource(); 
      var ordersList = OrdesrController.localOrders(); 

      collectionViewSource.Source = ordersList; 


      collectionViewSource.GroupDescriptions.Add(new PropertyGroupDescription("NumberOfOrder")); 

      DataContext = collectionViewSource; 




     } 
     catch(Exception ex) 
     { 
      MessageBox.Show(ex.Message); 
     } 
    } 
+0

btnOrders nicht einmal hinter auf Code erkannt wie das nicht –

Antwort

0

Griff Click-Ereignis des Buttons.

<Button Name="btnOrders" Click="Button_Click" .../> 

private void Button_Click(object sender, RoutedEventArgs e) 
    { 
     Button b = sender as Button; 

     CollectionViewGroup group = b.DataContext as CollectionViewGroup; 
     /* make clever use of this group */ 
    } 
+0

existiert Sieht aus wie, dass es paaren :) –

Verwandte Themen