Build a Responsive Kanban Board Application in WPF using C# and MVVM 🚀

Are you looking for a practical WPF project to improve your C#, MVVM, and desktop application development skills? In this series, we will build a Responsive Kanban Board Application from scratch using WPF, C#, and MVVM architecture . This project is inspired by modern task management tools like Trello and helps you understand how real-world desktop applications are designed and developed. Why Build a Kanban Board in WPF? Many developers learn WPF concepts individually: Buttons TextBoxes Data Binding Commands Collections But when building a real application, you need to combine everything together. A Kanban Board project helps you learn: ✅ Real UI design ✅ MVVM architecture ✅ Dynamic data handling ✅ User interaction ✅ Drag & Drop functionality ✅ Command-based programming ✅ Reusable WPF components What You Will Build in This WPF Project We create a responsive Kanban Board where users can manage tasks visually. The application contains: 📌 Multiple ...

How to create TextBox in wpf that does not accept number using MVVM?


Method 1: Using Model Property

Inside View

<TextBox Width="200" Text="{Binding MainWindowModel.NonNumeric,UpdateSourceTrigger=PropertyChanged}">

Inside Model

 private string _nonNumeric;

        public string NonNumeric
        {
            get { return _nonNumeric; }
            set
            {
                int intvalue;
                if (!int.TryParse(value[value.Length - 1].ToString(), out intvalue))
                    SetProperty(ref _nonNumeric, value);
                else
                    value = _nonNumeric;
            }

        }

Method 2 : Using Command

Inside View

<Window x:Class="PrismDemo.Views.MainWindow"
        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:PrismDemo.Views"
        mc:Ignorable="d" xmlns:prism="http://prismlibrary.com/"
        xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity">
<Grid>
 <TextBox Width="200">
            <i:Interaction.Triggers>
                <i:EventTrigger EventName="KeyDown">
                    <prism:InvokeCommandAction Command="{Binding KeyDownCommand}" />
                </i:EventTrigger>
            </i:Interaction.Triggers>
        </TextBox>
</Grid>
</Window>

Inside ViewModel

 public MainWindowViewModel()
        {
             KeyDownCommand = new DelegateCommand<KeyEventArgs>(ExecuteKeyDownMenu);
        }
  private void ExecuteKeyDownMenu(KeyEventArgs e)
        {
            if (e.Key >= Key.D0 && e.Key <= Key.D9)
            {
                e.Handled = true;
            }
        }


        public ICommand KeyDownCommand { get; set; }


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