zoukankan      html  css  js  c++  java
  • Item Demon

    <navigation:Page
      x:Class="DataGridAndChart.Home" 
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
      xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
      xmlns:navigation="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Navigation"
      mc:Ignorable="d" d:DesignWidth="1240" d:DesignHeight="480"  
      Style="{StaticResource PageStyle}" xmlns:sdk="http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk">
    
     
        
      <Grid x:Name="LayoutRoot">
            <Grid.Resources>
                <Popup x:Key="pop" Width="150" Height="75" IsOpen="False" MouseLeave="Popup_MouseLeave">
                    <Grid >
                        <Grid.RowDefinitions>
                            <RowDefinition Height="23"></RowDefinition>
                            <RowDefinition Height="*"></RowDefinition>
                        </Grid.RowDefinitions>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="*"></ColumnDefinition>
                            <ColumnDefinition Width="20"></ColumnDefinition>
                        </Grid.ColumnDefinitions>
                        <Border Background="Silver" Grid.ColumnSpan="2"></Border>
                        <Button Grid.Column="1" Background="Silver" BorderBrush="Silver" BorderThickness="0"  HorizontalAlignment="Right" Width="20" Content="X" x:Name="closePop" Click="closePop_Click"></Button>
                        <StackPanel Grid.Row="1" Grid.ColumnSpan="2">
                            <Button Content="Display History Sales Info"  Background="Silver" BorderBrush="Silver"  BorderThickness="0" Height="23"></Button>
                            <Button Content="Go to source"   Background="Silver" BorderBrush="Silver"  BorderThickness="0" Height="23"></Button>
                            <Button Content="Mark this item"  Background="Silver" BorderBrush="Silver"  BorderThickness="0" Height="23"></Button>
                        </StackPanel>
    
                    </Grid>
                </Popup>
            </Grid.Resources>
                <ScrollViewer x:Name="PageScrollViewer" Style="{StaticResource PageScrollViewerStyle}">
    
          <StackPanel x:Name="ContentStackPanel" Style="{StaticResource ContentStackPanelStyle}">
              
               <StackPanel x:Name="toolPanel" Orientation="Horizontal">
                   <ComboBox SelectionChanged="detailOptions_SelectionChanged" Name="detailOptions" Width="100" DisplayMemberPath="Name" SelectedValuePath="{Binding Value}" ItemsSource="{Binding DetailsOptions}"/>
                        <Button x:Name="feedBackBtn"  Width="100"  Content="Feed Back" Command="{Binding FeedBackCMD}"></Button>
                    </StackPanel>
              
               <sdk:DataGrid Name="dg"
                                  IsReadOnly="True" 
                                  AutoGenerateColumns="False" 
                                  AlternatingRowBackground="Silver"
                                  CanUserReorderColumns="True" 
                                  CanUserResizeColumns="True" 
                                  CanUserSortColumns="True"
                                  SelectionMode="Extended" 
                                  SelectedItem="{Binding SelectedItem}" 
                                  ItemsSource="{Binding DataSource}">
                        <sdk:DataGrid.Columns> 
                            <sdk:DataGridTextColumn Width="250" Header="Item Name" Binding="{Binding ItemName}"></sdk:DataGridTextColumn>
                            <sdk:DataGridTextColumn Width="150" Header="Shop Name" Binding="{Binding ShopName}"></sdk:DataGridTextColumn>
                            <sdk:DataGridTextColumn Width="150" Header="Price Range" Binding="{Binding PriceRange}"></sdk:DataGridTextColumn>
                            <sdk:DataGridTextColumn Width="100" Header="Sold Number" Binding="{Binding SoldNum}"></sdk:DataGridTextColumn>
                            <sdk:DataGridTextColumn Width="150" Header="Sold Amount" Binding="{Binding SoldAmount}"></sdk:DataGridTextColumn>
                            <sdk:DataGridTemplateColumn Header="Check">
                                <sdk:DataGridTemplateColumn.CellTemplate>
                                    <DataTemplate>
                                        <Button Content="Go to Source"  x:Name="goToSourceBtn" Command="{Binding DataContext.GotToSourceCMD,ElementName=dg}"></Button>
                                    </DataTemplate>
                                </sdk:DataGridTemplateColumn.CellTemplate>                           
                            </sdk:DataGridTemplateColumn>                     
                        </sdk:DataGrid.Columns>
    
                        <sdk:DataGrid.RowDetailsTemplate>
                            <!-- Begin row details section. -->
                            <DataTemplate>
                                <Border BorderBrush="Black" BorderThickness="1" Background="Tan" Margin="20,5,0,0">
                                    <sdk:DataGrid 
                                  AutoGenerateColumns="False" 
                                  AlternatingRowBackground="Gray"
                                  CanUserReorderColumns="True" 
                                  CanUserResizeColumns="True" 
                                  CanUserSortColumns="True"
                                  SelectionMode="Extended"  
                                  IsReadOnly="True" 
                                  ItemsSource="{Binding Details}">
                                        <sdk:DataGrid.Columns>
                                            <sdk:DataGridTextColumn Width="380" Header="Item Name" Binding="{Binding ItemName}"></sdk:DataGridTextColumn> 
                                            <sdk:DataGridTextColumn Width="150" Header="Price Range" Binding="{Binding PriceRange}"></sdk:DataGridTextColumn>
                                            <sdk:DataGridTextColumn Width="100" Header="Sold Number" Binding="{Binding SoldNum}"></sdk:DataGridTextColumn>
                                            <sdk:DataGridTextColumn Width="150" Header="Sold Amount" Binding="{Binding SoldAmount}"></sdk:DataGridTextColumn>
                                        </sdk:DataGrid.Columns>
                                  </sdk:DataGrid> 
                                </Border>
                            </DataTemplate>
                            <!-- End row details section. -->
                        </sdk:DataGrid.RowDetailsTemplate>
                    </sdk:DataGrid>
              
      
              
                </StackPanel>
    
        </ScrollViewer>
      </Grid>
    
    </navigation:Page>
    namespace DataGridAndChart
    {
        using System.Windows.Controls;
        using System.Windows.Navigation;
        using System.Collections.ObjectModel;
        using System;
        using System.Windows.Input;
        using System.Windows.Media;
        using System.Windows;
        using System.Windows.Controls.Primitives;
    
        /// <summary>
        /// Home page for the application.
        /// </summary>
        public partial class Home : Page
        {
            /// <summary>
            /// Creates a new <see cref="Home"/> instance.
            /// </summary>
            public Home()
            {
                InitializeComponent();
    
                this.Title = ApplicationStrings.HomePageTitle;
                this.DataContext = new HomeViewModel();
                dg.LoadingRow += new EventHandler<DataGridRowEventArgs>(dg_LoadingRow);
            }
    
            void dg_LoadingRow(object sender, DataGridRowEventArgs e)
            {
                e.Row.MouseRightButtonDown += new MouseButtonEventHandler(Row_MouseRightButtonDown);
    
            }
    
            void Row_MouseRightButtonDown(object sender, MouseButtonEventArgs e)
            {
                DataGridRow row= (DataGridRow)sender; 
                if (row == null)
                    return;
                Point p =  e.GetPosition(Application.Current.RootVisual);
                Popup pop = LayoutRoot.Resources["pop"] as Popup;
                GeneralTransform gt = row.TransformToVisual(Application.Current.RootVisual);
                
                pop.HorizontalOffset = p.X;
                pop.VerticalOffset = p.Y;
                pop.IsOpen = true; 
               
                e.Handled = true;
                
            }
    
            private void closePop_Click(object sender, System.Windows.RoutedEventArgs e)
            {
                Popup pop = LayoutRoot.Resources["pop"] as Popup;
                pop.IsOpen = false; 
            } 
    
            /// <summary>
            /// Executes when the user navigates to this page.
            /// </summary>
            protected override void OnNavigatedTo(NavigationEventArgs e)
            {
            } 
    
            private void detailOptions_SelectionChanged(object sender, SelectionChangedEventArgs e)
            {
                ComboBox cb = sender as ComboBox;
                var item = cb.SelectedValue as NameValue;
                string option = item == null ? "Selected" : item.Value as string;
                switch (option)
                {
                    case "Selected":
                        dg.RowDetailsVisibilityMode = DataGridRowDetailsVisibilityMode.VisibleWhenSelected;
                        break;
                    case "All":
                        dg.RowDetailsVisibilityMode = DataGridRowDetailsVisibilityMode.Visible;
                        break;
                    case "None":
                        dg.RowDetailsVisibilityMode = DataGridRowDetailsVisibilityMode.Collapsed;
                        break;
    
                }  
            }
    
            private void Popup_MouseLeave(object sender, MouseEventArgs e)
            {
                Popup pop = LayoutRoot.Resources["pop"] as Popup;
                pop.IsOpen = false; 
            } 
        }
    
        public class HomeViewModel
        {
            public HomeViewModel()
            {
                dataSource = ItemSummary.Get();
            }
    
            ObservableCollection<NameValue> detailOptions = new ObservableCollection<NameValue>(new NameValue[] 
            {
                new NameValue { Name ="Selected Item(default)",Value ="Selected"},
                new NameValue {Name ="All Items",Value ="All"},
                new NameValue {Name ="None",Value ="None"}
            });
            public ObservableCollection<NameValue> DetailsOptions{ get { return detailOptions; } }
    
            ObservableCollection<ItemSummary> dataSource;
            public ObservableCollection<ItemSummary> DataSource { get { return  dataSource; } }
    
            public ItemSummary SelectedItem { get; set; }
        }
    
        public class NameValue
        {
            public object Name { get; set; }
            public object Value { get; set; }
        }
    
        public class ItemSummary
        {
            public string ItemName { get; set; }
            public string ShopName { get; set; }
            public string PriceRange { get; set; }
            public double SoldNum { get; set; }
            public double SoldAmount { get; set; }
    
            ObservableCollection<ItemSummary> details = new ObservableCollection<ItemSummary>();
            public ObservableCollection<ItemSummary> Details { get { return details; } }
    
            public static ObservableCollection<ItemSummary> Get()
            {
                Random r = new Random();
                ObservableCollection<ItemSummary> list = new ObservableCollection<ItemSummary>();
                for (int i = 0; i < 15; i++)
                {
                    ItemSummary item = new ItemSummary();
                    item.ItemName = "Sumsung/Cell Phone Glax S " + r.Next(1, 40);
                    item.ShopName = "Shop_" + i;
                    item.PriceRange = (r.NextDouble() + 1) * 1000 + "-" + (r.NextDouble() + 1) * 1000;
                    item.SoldNum = r.Next(1, 100);
                    item.SoldAmount = (r.NextDouble()+0.1)*10000;
                    for (int j = 0; j < r.Next(2, 10); j++)
                    {
                        ItemSummary item2 = new ItemSummary();
                        item2.ItemName =item .ItemName + " Package " + r.Next(1, 9); 
                        item2.PriceRange = ((r.NextDouble() + 1) * 1000).ToString("0.00");
                        item2.SoldNum = r.Next(1, 100);
                        item2.SoldAmount = ((r.NextDouble() + 0.1) * 10000);
                        item.Details.Add(item2);
                    }
                    list.Add(item);
                }
    
                return list;
            }
        }
    }
  • 相关阅读:
    Mysql 分页查询sql优化
    观察者模式之spring事件机制
    封装一个按Key排序的Map工具
    SpringBoot java配置类@Configuration 的两种写法
    最基础前端路由实现,事件popstate使用
    mybatis分页插件PageHelper源码浅析
    看看线程特有对象ThreadLocal
    svn提交错误:Commit failed (details follow): Can't create directory
    mac下修复exfat格式外置硬盘
    [twisted] Multiple users
  • 原文地址:https://www.cnblogs.com/mjgb/p/3133908.html
Copyright © 2011-2022 走看看