2017-09-21 43 views
0

我想根據Menu的選擇在一個'DataGrid'中顯示不同的DataSource(SQL)查詢。我看到UserControl的吠叫錯了樹嗎?這將如何實施?一個基於菜單選擇顯示不同DataGrid的WPF窗口?

編輯: 我終於找到Changing user control on list selection這似乎回答我的問題非常好,或至少修改了我的問題有點。所以一個Menu是列出所有可用的「零件」。另一個Menu具有MenuItems,其對應於位置並最終在每個位置處的所述部件的庫存。目前,我爲每個MenuItem使用點擊處理程序,併爲零件和每個位置創建特定UserControl的新實例。

private void menuParts_Click(object sender, RoutedEventArgs e) 
    { 
     dgRoot.Children.Clear(); 
     UserControl control = new ucParts(); 
     this.dgRoot.Children.Add(control); 
     this.Title = "Inventory Manager - Parts"; 
    } 

private void menuSG1_Click(object sender, RoutedEventArgs e) 
    { 
     dgRoot.Children.Clear(); 
     UserControl control = new ucSG1(); 
     this.dgRoot.Children.Add(control); 
     this.Title = "Inventory Manager - SG1"; 
    } 

我現在的問題是,我可以創建可重用的用戶控件模板的Click處理程序可以養活位置名字?數據以相同的方式顯示,格式化,使用等,它最終只是底層的DataSource查詢是不同的。

回答

0

你看起來可以做到這一點。在我的情況下,只需創建通用usercontrol Grid

MainWindow.xaml

<DockPanel> 
    <Menu DockPanel.Dock="Top" Name="menuMain" Height="27" HorizontalAlignment="Stretch" VerticalAlignment="Top" ScrollViewer.VerticalScrollBarVisibility="Disabled" > 
     <MenuItem Header="Parts"> 
      <MenuItem Name="menuParts" Header="Parts" Click="menuParts_Click"/> 
      <Separator /> 
      <MenuItem Name="addPart" Header="Add Part" Click="addPart_Click" /> 
     </MenuItem> 
     <MenuItem Header="Inventory"> 
      <MenuItem Name="menuBrady" Header="Brady" Click="menuBrady_Click"/> 
      <MenuItem Name="menuCO" Header="Community" Click="menuCO_Click"/> 
      <MenuItem Name="menuPoly" Header="Poly" Click="menuPoly_Click"/> 
      <MenuItem Name="menuSG1" Header="SG1" Click="menuSG1_Click"/> 
      <MenuItem Name="menuWS" Header="West Shore" Click="menuWS_Click"/> 
     </MenuItem> 
    </Menu> 
    <Grid Name="dgRoot" /> 
</DockPanel> 

而且如我Click處理器上面,使用它們!

相關問題