Java 17 for Absolute Beginners: A Complete Guide to Get Started with Java Programming

Want to start learning Java programming ? This guide is just for you. We’ll cover the basics of Java 17 in simple language— no experience needed! ✅ What You’ll Learn: What is Java? Java 17 Features ( for beginners) Basic Syntax Data Types Operators Conditionals Loops Functions ( Methods) Object- Oriented Programming ( OOP) New Java 17 features ( Text blocks, Records) Practice Program 📌 What is Java? Java is: ✅ A popular and easy- to- learn language ✅ Platform- independent ( write once, run anywhere) ✅ Object- oriented ( based on real- world objects) ✅ Used for apps, websites, games, and more Java 17 is the latest Long- Term Support ( LTS) version, released in 2021. 1. Java 17 Basic Syntax Every Java program has a class and a main() method. public class HelloJava {     public static void main(String[] args) {         System.out.println("Hello, Java 17!");     } } 🔹 Notes: public cla...

Easy way of navigate using Prism in WPF

1.First.xaml


<UserControl x:Class="PrismMain.Views.First"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
             xmlns:local="clr-namespace:PrismMain.Views"
             mc:Ignorable="d"
             xmlns:prism="http://prismlibrary.com/"
        prism:ViewModelLocator.AutoWireViewModel="True">
    <StackPanel>
          <Button Content="Navigate To Second" Margin="5"  Command="{Binding NavigateCommand}" Width="150"/>
    </StackPanel>

</UserControl>



First.xaml.cs

public partial class First: UserControl
    {
        public First(FirstViewModel viewModel)
        {
            InitializeComponent();
            DataContext = viewModel;
        }

    }

FirstViewModel


  class FirstViewModel
    {
        public FirstViewModel(IRegionManager iregionManager)
        {
             NavigateCommand = new DelegateCommand(Nevigate);
            IregionManager = iregionManager;
        }

        private void Nevigate()
        {
            IregionManager.RequestNavigate("MainContent", "Second");
        }
        public ICommand NavigateCommand { get; }
        public IRegionManager IregionManager { get; }
    }

2.Second.xaml


<UserControl x:Class="PrismMain.Views.Second"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
             xmlns:local="clr-namespace:PrismMain.Views"
             mc:Ignorable="d"
             xmlns:prism="http://prismlibrary.com/"
        prism:ViewModelLocator.AutoWireViewModel="True">
    <StackPanel>
          <Button Content="Navigate To First" Margin="5"  Command="{Binding NavigateCommand}" Width="150"/>
    </StackPanel>

</UserControl>

Second.xaml.cs

public partial class Second: UserControl
    {
        public First(SecondViewModel viewModel)
        {
            InitializeComponent();
            DataContext = viewModel;
        }

    }


SecondViewModel


  class SecondViewModel
    {
        public SecondViewModel(IRegionManager iregionManager)
        {
            
            NavigateCommand = new DelegateCommand(Nevigate);
            IregionManager = iregionManager;
        }

        private void Nevigate()
        {
            IregionManager.RequestNavigate("MainContent", "First");
        }

       
        public ICommand NavigateCommand { get; }
        public IRegionManager IregionManager { get; }

    }


To navigate between these Views we need to register these views, for this we need to Implement IModule interface.

Here's how you can implement it:


 class MainModule : IModule
    {
        public void OnInitialized(IContainerProvider containerProvider)
        {
            var region = containerProvider.Resolve<IRegionManager>();
            region.RegisterViewWithRegion("MainContent", typeof(Main));
          //here i register the MainContent region of Main.xaml
        }

        public void RegisterTypes(IContainerRegistry containerRegistry)
        {
     
            containerRegistry.RegisterForNavigation<First>();
            containerRegistry.RegisterForNavigation<Second>();
         
        }

    }

Here MainContent is region name which is present in Main.xaml where these views are navigated.


Main.xaml

    
<metro:MetroWindow x:Class="PrismMain.Views.Main"
        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:local="clr-namespace:PrismMain.Views"
        mc:Ignorable="d"
        xmlns:prism="http://prismlibrary.com/"
        xmlns:metro="http://metro.mahapps.com/winfx/xaml/controls" >
<Grid>
     <ContentControl prism:RegionManager.RegionName="MainContent" />
 </Grid>
</metro:MetroWindow>

Now time to configure Module to do this we need to override ConfigureModuleCatalog method inside App.xaml.cs

App.xaml.cs


 public partial class App
    {
     
        protected override Window CreateShell()
        {
            var shell = Container.Resolve<Main>();//where Main is a window to display on start up which present in view folder
            return shell;
        }
       
        protected override void RegisterTypes(IContainerRegistry containerRegistry)
        {
            
            
        }
        protected override void ConfigureModuleCatalog(IModuleCatalog moduleCatalog)
        {
            base.ConfigureModuleCatalog(moduleCatalog);
            moduleCatalog.AddModule<MainModule>();
        }
    }



Comments

Popular posts from this blog

Filter DataGrid and ListView in wpf using ICollectionView

Pagination of DataGrid in WPF using MVVM

How to Create TabControl using Prism Region