diff --git a/README.md b/README.md index 15aaefe..ebe0ade 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,7 @@ -# Creating-a-Stacked-Column-Chart-for-Global-Smartphone-Shipments -Creating a Stacked Column Chart for Global Smartphone Shipments +# Creating a Stacked Column Chart for Global Smartphone Shipments + +A [Stacked column chart](https://help.syncfusion.com/maui/cartesian-charts/stackedcolumn) comprises columns stacked on top of one another, allowing a comparison of the total and the relative contribution of each sub-category. In this case, the columns represent the quarterly smartphone shipments for 2022, while the line chart illustrates the market share of smartphones in 2022. + +StackedColumn + + diff --git a/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo.sln b/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo.sln new file mode 100644 index 0000000..51b16ee --- /dev/null +++ b/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo.sln @@ -0,0 +1,27 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.8.34227.203 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SmartphoneShipmentsDemo", "SmartphoneShipmentsDemo\SmartphoneShipmentsDemo.csproj", "{309D8857-2B0B-4680-BF2C-50ABBD91B73F}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {309D8857-2B0B-4680-BF2C-50ABBD91B73F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {309D8857-2B0B-4680-BF2C-50ABBD91B73F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {309D8857-2B0B-4680-BF2C-50ABBD91B73F}.Debug|Any CPU.Deploy.0 = Debug|Any CPU + {309D8857-2B0B-4680-BF2C-50ABBD91B73F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {309D8857-2B0B-4680-BF2C-50ABBD91B73F}.Release|Any CPU.Build.0 = Release|Any CPU + {309D8857-2B0B-4680-BF2C-50ABBD91B73F}.Release|Any CPU.Deploy.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {2728EC67-E673-48BE-A548-3B372867E1E0} + EndGlobalSection +EndGlobal diff --git a/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo/App.xaml b/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo/App.xaml new file mode 100644 index 0000000..b822404 --- /dev/null +++ b/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo/App.xaml @@ -0,0 +1,14 @@ + + + + + + + + + + + diff --git a/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo/App.xaml.cs b/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo/App.xaml.cs new file mode 100644 index 0000000..74cc549 --- /dev/null +++ b/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo/App.xaml.cs @@ -0,0 +1,12 @@ +namespace SmartphoneShipmentsDemo +{ + public partial class App : Application + { + public App() + { + InitializeComponent(); + + MainPage = new AppShell(); + } + } +} diff --git a/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo/AppShell.xaml b/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo/AppShell.xaml new file mode 100644 index 0000000..665f5c1 --- /dev/null +++ b/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo/AppShell.xaml @@ -0,0 +1,14 @@ + + + + + + diff --git a/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo/AppShell.xaml.cs b/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo/AppShell.xaml.cs new file mode 100644 index 0000000..6d4f67a --- /dev/null +++ b/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo/AppShell.xaml.cs @@ -0,0 +1,10 @@ +namespace SmartphoneShipmentsDemo +{ + public partial class AppShell : Shell + { + public AppShell() + { + InitializeComponent(); + } + } +} diff --git a/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo/MainPage.xaml b/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo/MainPage.xaml new file mode 100644 index 0000000..0ad49e8 --- /dev/null +++ b/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo/MainPage.xaml @@ -0,0 +1,216 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo/MainPage.xaml.cs b/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo/MainPage.xaml.cs new file mode 100644 index 0000000..00d55cf --- /dev/null +++ b/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo/MainPage.xaml.cs @@ -0,0 +1,15 @@ +namespace SmartphoneShipmentsDemo +{ + public partial class MainPage : ContentPage + { + + + public MainPage() + { + InitializeComponent(); + } + + + } + +} diff --git a/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo/MauiProgram.cs b/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo/MauiProgram.cs new file mode 100644 index 0000000..86c7036 --- /dev/null +++ b/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo/MauiProgram.cs @@ -0,0 +1,27 @@ +using Microsoft.Extensions.Logging; +using Syncfusion.Maui.Core.Hosting; + +namespace SmartphoneShipmentsDemo +{ + public static class MauiProgram + { + public static MauiApp CreateMauiApp() + { + var builder = MauiApp.CreateBuilder(); + builder + .UseMauiApp() + .ConfigureSyncfusionCore() + .ConfigureFonts(fonts => + { + fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular"); + fonts.AddFont("OpenSans-Semibold.ttf", "OpenSansSemibold"); + }); + +#if DEBUG + builder.Logging.AddDebug(); +#endif + + return builder.Build(); + } + } +} diff --git a/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo/Model/Model.cs b/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo/Model/Model.cs new file mode 100644 index 0000000..700ffe2 --- /dev/null +++ b/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo/Model/Model.cs @@ -0,0 +1,28 @@ +namespace SmartphoneShipmentsDemo +{ + + public class Model + { + public string BrandName { get; set; } + + public double Quarter1 { get; set; } + + public double Quarter2 { get; set; } + + public double Quarter3 { get; set; } + + public double Quarter4 { get; set; } + + public double MarketShare { get; set; } + + public Model(string brandName,double q1, double q2, double q3, double q4, double marketShare) + { + BrandName = brandName; + Quarter1 = q1; + Quarter2 = q2; + Quarter3 = q3; + Quarter4 = q4; + MarketShare = marketShare; + } + } +} diff --git a/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo/Platforms/Android/AndroidManifest.xml b/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo/Platforms/Android/AndroidManifest.xml new file mode 100644 index 0000000..e9937ad --- /dev/null +++ b/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo/Platforms/Android/AndroidManifest.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo/Platforms/Android/MainActivity.cs b/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo/Platforms/Android/MainActivity.cs new file mode 100644 index 0000000..58f8093 --- /dev/null +++ b/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo/Platforms/Android/MainActivity.cs @@ -0,0 +1,11 @@ +using Android.App; +using Android.Content.PM; +using Android.OS; + +namespace SmartphoneShipmentsDemo +{ + [Activity(Theme = "@style/Maui.SplashTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation | ConfigChanges.UiMode | ConfigChanges.ScreenLayout | ConfigChanges.SmallestScreenSize | ConfigChanges.Density)] + public class MainActivity : MauiAppCompatActivity + { + } +} diff --git a/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo/Platforms/Android/MainApplication.cs b/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo/Platforms/Android/MainApplication.cs new file mode 100644 index 0000000..8e0c8fa --- /dev/null +++ b/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo/Platforms/Android/MainApplication.cs @@ -0,0 +1,16 @@ +using Android.App; +using Android.Runtime; + +namespace SmartphoneShipmentsDemo +{ + [Application] + public class MainApplication : MauiApplication + { + public MainApplication(IntPtr handle, JniHandleOwnership ownership) + : base(handle, ownership) + { + } + + protected override MauiApp CreateMauiApp() => MauiProgram.CreateMauiApp(); + } +} diff --git a/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo/Platforms/Android/Resources/values/colors.xml b/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo/Platforms/Android/Resources/values/colors.xml new file mode 100644 index 0000000..c04d749 --- /dev/null +++ b/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo/Platforms/Android/Resources/values/colors.xml @@ -0,0 +1,6 @@ + + + #512BD4 + #2B0B98 + #2B0B98 + \ No newline at end of file diff --git a/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo/Platforms/MacCatalyst/AppDelegate.cs b/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo/Platforms/MacCatalyst/AppDelegate.cs new file mode 100644 index 0000000..7a0ae07 --- /dev/null +++ b/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo/Platforms/MacCatalyst/AppDelegate.cs @@ -0,0 +1,10 @@ +using Foundation; + +namespace SmartphoneShipmentsDemo +{ + [Register("AppDelegate")] + public class AppDelegate : MauiUIApplicationDelegate + { + protected override MauiApp CreateMauiApp() => MauiProgram.CreateMauiApp(); + } +} diff --git a/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo/Platforms/MacCatalyst/Entitlements.plist b/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo/Platforms/MacCatalyst/Entitlements.plist new file mode 100644 index 0000000..de4adc9 --- /dev/null +++ b/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo/Platforms/MacCatalyst/Entitlements.plist @@ -0,0 +1,14 @@ + + + + + + + com.apple.security.app-sandbox + + + com.apple.security.network.client + + + + diff --git a/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo/Platforms/MacCatalyst/Info.plist b/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo/Platforms/MacCatalyst/Info.plist new file mode 100644 index 0000000..7268977 --- /dev/null +++ b/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo/Platforms/MacCatalyst/Info.plist @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + UIDeviceFamily + + 2 + + UIRequiredDeviceCapabilities + + arm64 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + XSAppIconAssets + Assets.xcassets/appicon.appiconset + + diff --git a/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo/Platforms/MacCatalyst/Program.cs b/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo/Platforms/MacCatalyst/Program.cs new file mode 100644 index 0000000..c95e789 --- /dev/null +++ b/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo/Platforms/MacCatalyst/Program.cs @@ -0,0 +1,16 @@ +using ObjCRuntime; +using UIKit; + +namespace SmartphoneShipmentsDemo +{ + public class Program + { + // This is the main entry point of the application. + static void Main(string[] args) + { + // if you want to use a different Application Delegate class from "AppDelegate" + // you can specify it here. + UIApplication.Main(args, null, typeof(AppDelegate)); + } + } +} diff --git a/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo/Platforms/Tizen/Main.cs b/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo/Platforms/Tizen/Main.cs new file mode 100644 index 0000000..9725fe1 --- /dev/null +++ b/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo/Platforms/Tizen/Main.cs @@ -0,0 +1,17 @@ +using Microsoft.Maui; +using Microsoft.Maui.Hosting; +using System; + +namespace SmartphoneShipmentsDemo +{ + internal class Program : MauiApplication + { + protected override MauiApp CreateMauiApp() => MauiProgram.CreateMauiApp(); + + static void Main(string[] args) + { + var app = new Program(); + app.Run(args); + } + } +} diff --git a/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo/Platforms/Tizen/tizen-manifest.xml b/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo/Platforms/Tizen/tizen-manifest.xml new file mode 100644 index 0000000..1086c39 --- /dev/null +++ b/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo/Platforms/Tizen/tizen-manifest.xml @@ -0,0 +1,15 @@ + + + + + + maui-appicon-placeholder + + + + + http://tizen.org/privilege/internet + + + + \ No newline at end of file diff --git a/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo/Platforms/Windows/App.xaml b/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo/Platforms/Windows/App.xaml new file mode 100644 index 0000000..fe6bb53 --- /dev/null +++ b/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo/Platforms/Windows/App.xaml @@ -0,0 +1,8 @@ + + + diff --git a/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo/Platforms/Windows/App.xaml.cs b/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo/Platforms/Windows/App.xaml.cs new file mode 100644 index 0000000..c8cd6e4 --- /dev/null +++ b/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo/Platforms/Windows/App.xaml.cs @@ -0,0 +1,25 @@ +using Microsoft.UI.Xaml; + +// To learn more about WinUI, the WinUI project structure, +// and more about our project templates, see: http://aka.ms/winui-project-info. + +namespace SmartphoneShipmentsDemo.WinUI +{ + /// + /// Provides application-specific behavior to supplement the default Application class. + /// + public partial class App : MauiWinUIApplication + { + /// + /// Initializes the singleton application object. This is the first line of authored code + /// executed, and as such is the logical equivalent of main() or WinMain(). + /// + public App() + { + this.InitializeComponent(); + } + + protected override MauiApp CreateMauiApp() => MauiProgram.CreateMauiApp(); + } + +} diff --git a/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo/Platforms/Windows/Package.appxmanifest b/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo/Platforms/Windows/Package.appxmanifest new file mode 100644 index 0000000..e01466c --- /dev/null +++ b/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo/Platforms/Windows/Package.appxmanifest @@ -0,0 +1,46 @@ + + + + + + + + + $placeholder$ + User Name + $placeholder$.png + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo/Platforms/Windows/app.manifest b/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo/Platforms/Windows/app.manifest new file mode 100644 index 0000000..393ccd0 --- /dev/null +++ b/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo/Platforms/Windows/app.manifest @@ -0,0 +1,15 @@ + + + + + + + + true/PM + PerMonitorV2, PerMonitor + + + diff --git a/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo/Platforms/iOS/AppDelegate.cs b/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo/Platforms/iOS/AppDelegate.cs new file mode 100644 index 0000000..7a0ae07 --- /dev/null +++ b/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo/Platforms/iOS/AppDelegate.cs @@ -0,0 +1,10 @@ +using Foundation; + +namespace SmartphoneShipmentsDemo +{ + [Register("AppDelegate")] + public class AppDelegate : MauiUIApplicationDelegate + { + protected override MauiApp CreateMauiApp() => MauiProgram.CreateMauiApp(); + } +} diff --git a/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo/Platforms/iOS/Info.plist b/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo/Platforms/iOS/Info.plist new file mode 100644 index 0000000..0004a4f --- /dev/null +++ b/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo/Platforms/iOS/Info.plist @@ -0,0 +1,32 @@ + + + + + LSRequiresIPhoneOS + + UIDeviceFamily + + 1 + 2 + + UIRequiredDeviceCapabilities + + arm64 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + XSAppIconAssets + Assets.xcassets/appicon.appiconset + + diff --git a/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo/Platforms/iOS/Program.cs b/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo/Platforms/iOS/Program.cs new file mode 100644 index 0000000..c95e789 --- /dev/null +++ b/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo/Platforms/iOS/Program.cs @@ -0,0 +1,16 @@ +using ObjCRuntime; +using UIKit; + +namespace SmartphoneShipmentsDemo +{ + public class Program + { + // This is the main entry point of the application. + static void Main(string[] args) + { + // if you want to use a different Application Delegate class from "AppDelegate" + // you can specify it here. + UIApplication.Main(args, null, typeof(AppDelegate)); + } + } +} diff --git a/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo/Properties/launchSettings.json b/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo/Properties/launchSettings.json new file mode 100644 index 0000000..edf8aad --- /dev/null +++ b/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo/Properties/launchSettings.json @@ -0,0 +1,8 @@ +{ + "profiles": { + "Windows Machine": { + "commandName": "MsixPackage", + "nativeDebugging": false + } + } +} \ No newline at end of file diff --git a/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo/Resources/Raw/AboutAssets.txt b/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo/Resources/Raw/AboutAssets.txt new file mode 100644 index 0000000..15d6244 --- /dev/null +++ b/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo/Resources/Raw/AboutAssets.txt @@ -0,0 +1,15 @@ +Any raw assets you want to be deployed with your application can be placed in +this directory (and child directories). Deployment of the asset to your application +is automatically handled by the following `MauiAsset` Build Action within your `.csproj`. + + + +These files will be deployed with you package and will be accessible using Essentials: + + async Task LoadMauiAsset() + { + using var stream = await FileSystem.OpenAppPackageFileAsync("AboutAssets.txt"); + using var reader = new StreamReader(stream); + + var contents = reader.ReadToEnd(); + } diff --git a/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo/Resources/Styles/Colors.xaml b/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo/Resources/Styles/Colors.xaml new file mode 100644 index 0000000..1bde6dd --- /dev/null +++ b/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo/Resources/Styles/Colors.xaml @@ -0,0 +1,46 @@ + + + + + + + #512BD4 + #DFD8F7 + #2B0B98 + White + Black + #E1E1E1 + #C8C8C8 + #ACACAC + #919191 + #6E6E6E + #404040 + #212121 + #141414 + + + + + + + + + + + + + + + #F7B548 + #FFD590 + #FFE5B9 + #28C2D1 + #7BDDEF + #C3F2F4 + #3E8EED + #72ACF1 + #A7CBF6 + + diff --git a/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo/Resources/Styles/Styles.xaml b/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo/Resources/Styles/Styles.xaml new file mode 100644 index 0000000..890ced0 --- /dev/null +++ b/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo/Resources/Styles/Styles.xaml @@ -0,0 +1,408 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo.csproj b/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo.csproj new file mode 100644 index 0000000..e98f0b5 --- /dev/null +++ b/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo.csproj @@ -0,0 +1,69 @@ + + + + net8.0-android;net8.0-ios;net8.0-maccatalyst + $(TargetFrameworks);net8.0-windows10.0.19041.0 + + + + + + + Exe + SmartphoneShipmentsDemo + true + true + enable + enable + + + SmartphoneShipmentsDemo + + + com.companyname.smartphoneshipmentsdemo + + + 1.0 + 1 + + 11.0 + 13.1 + 21.0 + 10.0.17763.0 + 10.0.17763.0 + 6.5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo.csproj.user b/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo.csproj.user new file mode 100644 index 0000000..70f9d49 --- /dev/null +++ b/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo.csproj.user @@ -0,0 +1,36 @@ + + + + False + net8.0-windows10.0.19041.0 + Windows Machine + Emulator + pixel_5_-_api_34 + + + ProjectDebugger + + + + Designer + + + Designer + + + Designer + + + Designer + + + Designer + + + Designer + + + Designer + + + \ No newline at end of file diff --git a/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo/ViewModel/ViewModel.cs b/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo/ViewModel/ViewModel.cs new file mode 100644 index 0000000..2737406 --- /dev/null +++ b/SmartphoneShipmentsDemo/SmartphoneShipmentsDemo/ViewModel/ViewModel.cs @@ -0,0 +1,23 @@ +using System.Collections.ObjectModel; + +namespace SmartphoneShipmentsDemo +{ + public class ViewModel + { + public ObservableCollection ShipmentsData { get; set; } + + public ViewModel() + { + ShipmentsData = new ObservableCollection() + { + new Model ("Oppo", 31.32, 26.55, 26.62, 20.61, 8.7), + new Model ("Vivo",28.71, 26.44, 26.83, 24, 8.8), + new Model ("Xiaomi", 38.5, 39.1, 40.2, 33, 12.5), + new Model ("Apple", 56.99, 44.93, 48.6, 71.24, 18.4), + new Model ("Samsung", 74, 62, 64, 58 , 21.4) + + }; + + } + } +}