WPF - CheckBox ile Form Elementlerinin Görünürlüğünün Değiştirilmesi

Windows Presentation Foundation (WPF) ile uygulama geliştirirken karşılaştığımız farklılıklara ne tür çözümler getirebileceğimizi incelemeye devam ediyoruz.

Form üzerine yerleştirmiş olduğumuz kontrollerden bazılarını checkbox yardımı ile görünürlüğünü değiştirmek isteyebiliriz. Bu işlem sonucunda örneğin form üzerinde bir checkbox bir tane de textbox var. CheckBox 'ın seçili durumunu değiştirdiğim durumda textbox 'ın form üzerinden kaybolmasını istiyorum. Peki, bahsettiğim bu işlemi Windows Form 2.0 ile nasıl yapabiliyordum.

textbox1.Visible = checkBox1.Checked;

Yukarıda görmüş olduğunuz ufak kod parçası yazıldığında işlem kolay bir şekilde gerçekleşiyor. Peki, bu işlem WPF üzerinde nasıl yapılabiliyor. Windows Forma göre biraz daha zor. Nasıl yapabilirizi inceleyelim.

WPF uygulaması oluşturuyor ve sonrasında oluşturulan projeye sınıf ekliyoruz ve aşağıdaki kodları ekliyoruz. Bu arada WPF ile kullanabileceğimiz çok güzel bir enum bulunmaktadır. Form elementlerinin Visibility özelilkleri enum olarak tanımlanmış ve Visible, Collapsed ve Hidden değerleri atanmıştır. Bizde kodumuzda bu özelliklerden yararlanacağız.

Converter.cs
using System;
using System.Windows.Data;
using System.Windows;

namespace ShowHide.Convert
{
    class Converter:IValueConverter
    {
        public object Convert(object value, Type targetType, object parameter,                 System.Globalization.CultureInfo culture)
        {
            Visibility vb = Visibility.Visible;
            try
            {
                var x = bool.Parse(value.ToString());
                if (x)
                    vb = Visibility.Visible;
                else
                    vb = Visibility.Collapsed;
            }
            catch (Exception)
            {}
            return vb;
        }

        public object ConvertBack(object value, Type targetType, object parameter,         System.Globalization.CultureInfo culture)
        {
            return value;
        }
    }
}

Sıra geldi XAML kod üzerinde yapacağımız işlemlere, ekranın üzerine bir tane textbox ve checkbox ekliyoruz. Sonrasında ise oluşturmuş olduğumuz sınıfı xaml:namespace olarak xaml kod tarafında gösteriyoruz.

Window1.xaml
<Window x:Class="ShowHide.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Window1" Height="300" Width="300"
    xmlns:converter="clr-namespace:ShowHide.Convert" >
    <StackPanel Orientation="Vertical">
        <StackPanel.Resources>
            <converter:Converter x:Key="boolToVis"/>
        </StackPanel.Resources>
        <CheckBox Content="Tikla textbox kaybolsun" Name="checkGosterTextBox" />
        <TextBox Text="checkbox a tikladiğinda kaybolur" Visibility="{Binding Path=IsChecked,             ElementName=checkGosterTextBox, Converter={StaticResource boolToVis}}"/>
    </StackPanel>
</Window>

XAML kod da DataBinding ile oluşturulan sınıfı isim alanı olarak ekliyoruz. Sonrasında da Visibility özelliklerini buradan almasına olanak tanıyoruz.

Bu işlemler sonrasında form elementlerini istediğimiz şekilde görünebilirliği ile oynayabilyoruz. Windows Form 2.0 ile hazırlamış olduğumuz projelere oranla biraz daha zor görünse de kendi sınıfımızı oluşturduktan sonra çok rahat bir şekilde kullanabilir duruma geliyoruz.

Umarım yararlı olabilmiştir.

Turhal Temizer

info@turhaltemizer.com

Yorum Gönder

0 Yorumlar

Ad Code

Responsive Advertisement