Makale Özeti

Bu yazımızda WPF uygulamalarında en sık kullanılan Item Controller i incelemeye çalışıyoruz.

Makale

Windows Presentation Foundation (WPF) ile ilgili yapılabilecek işlemleri bugüne kadar detaylı bir biçimde incelemeye çalıştık. Tabii bizler bu yazı dizilerini oluştururken WPF Microsoft tarafında yeni duyurulmuş ve fazla bir kullanım alanı yoktu. Tabii zaman ilerledikçe ve yeni nesil işletim sistemleri çıktıkça yazılım dünyasında WPF kullanımı dahada artmaktadır.

WPF ile ilgilenne yazılımcıları çok farklı bir sürpriz karşılamaktadır. WPF kontrollerinin özellikleri eskiden alışık oldukları Windows Form kontrollerinden biraz farklıdır. Ayrıca da bu kontrolleri özelleştirmek istediklerinde oluşan farklılıklardan ötürü zorlujlar yaşayabiliyorlar. Bu tür sorunlar ile karşılaşılmaması için bu yazımızda tek tek WPF kontrollerine değineceğiz ve detaylarını inceliyor olacağız. İlk yazımızda en sık kullanılan Item Controllere göz atalım.

Item Controller son kullanıcıya liste şeklinde verileri göstermeyi sağlamaktadır. Bu verileri de iki şekilde kullanabilmemiz mümkündür. Birinci yöntem XAML kod tarafında Item özelliklerine değerler atayarak, bir diğeri ise yönetilebilir kod tarafında dataBind yöntemi ile verileri doldurmaktadır.

ComboBox

<ComboBox Name="comboBox1" SelectedValue="0">
    <ComboBoxItem>Item 1</ComboBoxItem>
    <ComboBoxItem>Item 2</ComboBoxItem>
    <ComboBoxItem>Item 3</ComboBoxItem>
</ComboBox>

ComboBox 'a elemanları <ComboBoxItem> özelliği yardımı ile elemanların eklenebilmesi mümkündür. Peki ekran görüntüsü nasıl oluyor.



Peki hangi amaçla kullanılabilir. İl/ ilçe/ belde seçilmesinde, Gridde gösterilecek olan verilerin kriteri olarak ve buna benzer veriler yardımı ile kullanılabilir.

ContextMenu & MenuItem

Kullanılan bir kontrole ilişkin özel menü oluşturulmak istendiğinde kullanılır. Sizinde denemenizde sorunsuzca çalışabilmesi için kullandığınız kontrolün ContextMenu özelliğini kullanmanız gerekmektedir. Örneğin, <TextBox.ContextMenu> şeklinde kullanılabilir.

<ContextMenu Name="cm">
    <MenuItem Header="Copy"/>
    <MenuItem Header="Paste"/>
    <MenuItem Header="Clear"/>
    <MenuItem Header="Details">
        <MenuItem Header="One"/>
        <MenuItem Header="Two"/>
    </MenuItem>
</ContextMenu>

İşlem sonrasında ekran görüntüsü aşağıdaki olacaktır.



Listbox

Listbox adından da anlaşılacağı gibi uygulamalar içerisinde toplu halde verilerin listelenmesini sağlar. Genel kullanım alanları, ekran üzerinde seçili olan kontrollerden gelen değerlerin gösterilmesi, iki listbox kontrolü ile birinden birine göndererek kullanım içerik düzenlemesini yapmak gibi yerlerde kullanılmaktadır.

<ListBox Name="lbl" Width="200" Height="150">
    <ListBoxItem Content="Deger" Selector.IsSelected="True"/>
    <ListBoxItem Content="Deger2"/>
    <ListBoxItem>Deger 3</ListBoxItem>
</ListBox>

İşlem sonrasında ekran görüntüsü aşağıdaki olacaktır.



ListView

Gridview benzeri bir yapı ile verilerinizi ekran üzerinde görüntüleyebilmenize olanak tanır. İçerisinde verileri elle girmek yerine genellikle, veri tabanından ya da xml veri içerisinde alınması tercih edilir.

<ListView SelectedIndex="0" Height="110"
     ItemsSource="{StaticResource Characters}">
    <ListView.View>
        <GridView>
            <GridViewColumn Width="100"
                DisplayMemberBinding="{Binding Last}"
                Header="Last Name" />
            <GridViewColumn Width="100"
                DisplayMemberBinding="{Binding First}"
                Header="First Name" />
            <GridViewColumn Width="60"
                DisplayMemberBinding="{Binding Gender}"
                Header="Gender" />
        </GridView>
    </ListView.View>
</ListView>

İşlemin sonrasında ekran görüntüsü aşağıdaki gibi olmuştur.



Daha sonrasında edit, insert, delete ve select işlemlerinizi yapabilmeniz mümkündür.

Tab Control

Son kullanıcıya tek ekranda birden fazla ekran göstermek istiyorsanız oldukça yararlı olabilecek bir kontroldür. Ya da Windows Form uygulamalarında adım adım bir işlem yaptırmak istediğinizde de oldukça başarılı bir uygulama olacaktır. Sonrasında ise adım adım işlemleri yapmış olduğunuz form kontrollerinin içerisinde yer alan değerleri DataBinding yardımı ile diğer kontrollerdeki değerler ile birleştirerek istediğiniz işlemleri yapabilmeniz mümkündür.

<TabControl Width="150" Height="100">
    <TabItem Header="One">
        <TextBlock>Hello World</TextBlock>
    </TabItem>
    <TabItem Header="Two" />
    <TabItem Header="Three" />
</TabControl>

İşlemin sonrasında ekran görüntüsü aşağıdaki gibi olmuştur.



Toolbar

Son kullanıcıya resimli olarak araç kutus göstermeye olanak tanımaktadır. Bu tür menülere Office uygulamalarından ve visual studio gibi geliştirme araçlarında alışığızdır. Örneğin kaydetme işlemine yarayan bir disket resmi gibi.

<ToolBar Margin="2">
    <Button Command="ApplicationCommands.Open"
         Height="40" Width="40"
         Background="{StaticResource OpenIcon}" />
    <Button Command="ApplicationCommands.Save"
         Height="40" Width="40"
         Background="{StaticResource SaveIcon}" />
</ToolBar>

İşlemin sonrasında ekran görüntüsü aşağıdaki gibi olmuştur.



TreeView TreeViewItem

Uygulamalarda içerikleri alt alta gösterme konusunda en çok yardım alınan kontrollerden biridir. Ayrıca WPF ile hazırlanan XBAP (Browser Application) uygulamalarında da oldukça yararlı olabilcek özelliklerden biridir. Peki TreeView kullanmak istediğimiz durumlarda verileri nasıl ekleyeceğiz. Bütün yazımız boyunca değindiğimiz kontrollerde olduğu gibi Item özelliğini kullanarak ekleme işlemini gerçekleştireceğiz. Ayrıca veri eklerken her zamanki gibi en temel anlamda iki yöntem bulunmaktadır. Bunlardan birincisi elle verileri eklemek, bir diğeri ise veri tabanı ya da web servis ile gelen verileri DataBinding yolu ile eklemektir.

<TreeView Width="150" Height="100"
    ItemsSource="{StaticResource Characters}">
    <TreeView.Resources>
        <HierarchicalDataTemplate
             DataType="{x:Type src:Character}"
             ItemsSource ="{Binding Fact}">
                <TextBlock Text="{Binding Name}" />
        </HierarchicalDataTemplate>
        <DataTemplate DataType="{x:Type src:Fact}">
            <StackPanel Orientation="Horizontal">
                <TextBlock Text="{Binding Name}" />
                <TextBlock Text=": " />
                <TextBlock Text="{Binding Value}" />
                </StackPanel>
         </DataTemplate>
    </TreeView.Resources>
</TreeView>

İşlemin sonrasında ekran görüntüsü aşağıdaki gibi olacaktır.



Hiyearişk bir şekilde verileri görüp üzerinde işlemler yapabilmeniz mümkündür.

Bu yazımızda en sık olarak kullandığımız Item kontrolleri incelemeye çalıştık. Bir sonraki yazımızda ise Item kontrollerde koleksiyonların nasıl kullanılacağını incelemeye çalışacağız.

Umarım yararlı olabilmiştir.

Turhal Temizer
info@turhaltemizer.com
Turhal Temizer 'in Blogu