Binding RadioButtons with Gender Property in WPF Using Value Converter

Many WPF developers face a common problem when working with RadioButtons . They try to bind RadioButtons with a Gender property, but the binding does not work as expected . Why does this happen? Because RadioButtons work with true/false values , but in real applications, Gender is stored as meaningful values like: Male Female So the big question is: How do we connect a true/false UI control with a Male/Female data value? Why RadioButton Binding Fails A RadioButton uses the IsChecked property, and this property accepts only: true false But your Gender property is usually: a string ( "Male" , "Female" ) or an enum So the UI value and the data value are different types . This mismatch is the root cause of the problem. The Solution: Value Converter WPF provides a powerful feature called a Value Converter . What is a Value Converter? A Value Converter converts one value type into another. In our case: Convert Gender (...

Leetcode - 125. Valid Palindrome

 Problem statement:


A phrase is a palindrome if, after converting all uppercase letters into lowercase letters and removing all non-alphanumeric characters, it reads the same forward and backward. Alphanumeric characters include letters and numbers.

Given a string s, return true if it is a palindrome, or false otherwise.


Solution:


Problem says,
  1. First convert all uppercase letters into lowercase letters.
  2. Remove all non-alphanumeric characters.

For first part, I will use ToLower() method of string class. this method will convert all the uppercase letters into lowercase letters.

For the second part, I will use Regex Replace method to remove all non-alphanumeric characters.


 public bool IsPalindrome(string s) 
 {
        /*here i am checking if string is null or empty if so then it will be always                                    Palindrome so return true*/
            if(string.IsNullOrEmpty(s))
               return true;

    /*in this statement i am first converting the string all uppercase to lowercase letters and     then replacing all the non-alphanumeric characters with empty means it will remove that*/
        var str=Regex.Replace(s.ToLower(),"[^a-z0-9]","");
             
        int i=0, j=str.Length-1;

        for(;i<j;i++,j--)
            {
               /*in this statement i am comparing the first character to last character if it is not                     same then returning false*/
            if(str[i]!=str[j])
                return false;
        }
       return true;
    }



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