Ana içeriğe atla

WPF – Item Controls

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 bazı sorunlar yaşıyorlar. 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.

mak51_1

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.

mak59_2

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.

mak59_3

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.

mak51_4

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.

mak59_5

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.

mak51_6

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.

mak51_7

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

Yorumlar

Bu blogdaki popüler yayınlar

SharePoint 2010 - Content Query for Blog Posts

I hope this post will help many of you feel comfortable with using the Content Query Web Part. In this post I will walk you through the process of creating a content query web part and configuring it to show custom field types. I will also give details on how to use XSLT to stylize and format the data being pulled. I will be using the following scenario as an example. Say that you had a site collection with a top level publishing site. This publishing site would display a the most recent blog posts from all blog sites within its own site collection. To solve this problem we will use a Content Query Web Part and a customized ItemStyle.xsl using XSLT. Please note that the “SharePoint Server Publishing Infrastructure” needs to be enabled at the site collection to display the content query web part. Step 1: Add a Content Query Web Part to Page Navigate to the site that you want the blog posts to show up and click on edit page. Under Editing Tools in the Ribb

.Net 3.5 SP1 – Full Install Packages (Tam Kurulum)

.Net Framework 3.5 SP1 ‘i bilgisayarınıza kurmak istediğinizde normal şartlar altında Microsoft ‘un sitesinde 2.7 mb ‘lik bir dosya indirir ve kurulum işlemlerinizi bu dosya üzerinden yaparsınız. Ancak bu indirmiş oluğunuz dosya yaklaşık 220 mb ‘lik veriyi internetten indirerek kurulum yapmaktadır. İnternet çıkışına izin verilmeyen kurumlar ve kuruluşlar için bu durum bir sıkıntı oluşturmaktadır. Bu sebepten ötürü aşağıdaki link yardımı ile tam yükleme paketini indirdikten sonra hiç internet ihtiyacınız olmadan .Net 3.5 SP1 ‘i kurabilmeniz mümkün olacaktır. Link

Microsoft .Net Framework 3.0 & 3.5 Full Download

.Net ile yazılım geliştiricilerin özelliklede Framework 3.x ile geliştirenlerin başlıca sorunu kurulum dosyası hazırladıklarında .Net Framework ‘ü kurmak için internete bağlanmalarıdır. Çünkü kurulum dosyaları 2-3 MB arasıdır. Yavaş internet kullanıcılarında ve kurumsal şirketlerde projelerin çok ama çok geç kurulmasına sebep olmaktadır. Bu sebepten ötürü sizlere .Net 3.x Framework ‘lerin tam kurulabilir paketlerinin linklerini sizlere sunuyorum. Umarım yararlı olur. Microsoft .NET Framework 3.5 Setup 32-bit version (Boyut(Size): ~200MB Microsoft .NET Framework 3.0 Setup 32-bit Version (Boyut(Size): ~50MB) 64-bit Version (Boyut(Size): ~90MB) Herkese iyi çalışmalar, kolay kurumlar diliyorum. :)