آموزش ایجاد GridView در WPF
Loading...
GridView در WPF

اگر به دنبال یک کنترل GridView در WPF هستید ، نا امید خواهید شد زیرا WPF کنترل GridView ندارد. اما خبر خوب این است که شما میتوانید با استفاده از قابلیت تابعیت و با کمک از کنترل ListView موجود در WPF به آن دست پیدا کنید. برای درک بهترتان علاوه بر آموزش گام به گام ، سورس پروژه نیز در ادامه ی مطلب برایتان قرار داده شده است…

از خاصیت View به منظور ارائه ی یک لایه و طراحی GridView در یک کنترل ListView استفاده میشود. خاصیت View یک ListView از یک نوع کلاس ViewBase است که از دو نوع View (GridView و یک ListView اختصاصی) پشتیبانی میکند. یک GridView برای مرتب سازی داده ها در ستون ها و افزودن پشتیبانی لایه و طراحی برای یک ListView مورد استفاده است.

قطعه کد زیر خاصیت View مربوط به ListView را بر روی حالت GridView تنظیم میکند.

<ListView>
    <ListView.View>
        <GridView />
     </ListView.View>
</ListView>

یک GridView به عنوان یک کنترل کمکی برای یک ListView به منظور ارائه ی استایل و لایه استفاده میشود. GridView خصوصیات مربوط به کنترل خودش مانند رنگ پس زمینه ، رنگ پیش زمینه ، خصوصیات فونت ها ، سایز و موقعیت را ندارد. از یک ListView برای ارائه ی تمامی خصوصیات کنترل مربوطه استفاده میشود.

GridView در WPF

المان GridView در XAML یک GridViewدر زمان design ارائه میدهد. خصوصیت ستون های یک GridView کالکشنی از اشیای GridViewColumns را بازمیگرداند. المان GridViewColumns در XAML ارائه کننده ی یک ستون GridView میباشد. خاصیت AllowsColumnRecorder ارائه کننده ی یک ستون آب و هوا در GridView است که میتواند توسط یک کاربر با کشیدن و انداختن از یک مکان به مکان دیگر ثبت شود.خاصیت ColumnHeaderToolTip ارائه گر محتوای یک tooltip است که در لحظه ی قرار گرفتن نشانه گر موس بر روی یکی از سر ستون ها ، ظاهر میشود.

کد های لیست شده در زیر ، یک کنترل GridView ایجاد میکند و چهار ستون به آن اضافه میکند. خاصیت GridViewColumn ارائه کننده ی header یک ستون است. خاصیت Width نیز ارائه کننده ی عرض ستون ها است و همچنین خاصیت DisplayMemberBinding نیز برای Bind کردن یک GridViewColumn به خصوصیت اشیای data binding ، مورد استفاده است.

<GridView AllowsColumnReorder="true" ColumnHeaderToolTip="Authors"
          >
<GridViewColumn Header="Name" Width="120" DisplayMemberBinding="{Binding Path=Name}" />
    <GridViewColumn Header="Age" Width="50" DisplayMemberBinding="{Binding Path=Age}" />
    <GridViewColumn Header="Book" Width="250" DisplayMemberBinding="{Binding Path=Book}" />
    <GridViewColumn Header="MVP" Width="50" DisplayMemberBinding="{Binding Path=Mvp}" />
    
</GridView>

خروجی قطعه کد بالا به صورت زیر خواهد بود :

GridView در WPF

کلاس GridView در WPF ارائه کننده ی یک کنترل GridView است. کلاس GridViewColumn ارائه گر یک ستون GridView است. کد های لیست شده در زیر نیز یک کنترل GridView ایجاد میکند و چهار ستون به صورت اتوماتیک به آن اضافه میکند.

private void CreateDynamicGridView()
{
    // Create a GridView  
    GridView grdView = new GridView();
    grdView.AllowsColumnReorder = true;
    grdView.ColumnHeaderToolTip = "Authors";
 
    GridViewColumn nameColumn = new GridViewColumn();
    nameColumn.DisplayMemberBinding = new Binding("Name");
    nameColumn.Header = "Author Name";
    nameColumn.Width = 120;
    grdView.Columns.Add(nameColumn);
 
    GridViewColumn ageColumn = new GridViewColumn();
    ageColumn.DisplayMemberBinding = new Binding("Age");
    ageColumn.Header = "Age";
    ageColumn.Width = 30;
    grdView.Columns.Add(ageColumn);
 
    GridViewColumn bookColumn = new GridViewColumn();
    bookColumn.DisplayMemberBinding = new Binding("Book");
    bookColumn.Header = "Book";
    bookColumn.Width = 250;
    grdView.Columns.Add(bookColumn);
 
    GridViewColumn mvpColumn = new GridViewColumn();
    mvpColumn.DisplayMemberBinding = new Binding("Mvp");
    mvpColumn.Header = "Mvp";
    mvpColumn.Width = 50;
    grdView.Columns.Add(mvpColumn);
 
    ListView1.View = grdView;
}

افزودن یک ContextMenu به بالای GridView

خصوصیت ColumnHeaderContextMenu مربوط به یک GridView نیز برای gets و sets یک ContextMenu مورد استفاده است ، در زمانی که شما بر روی header یک کنترل GridView کلیک میکنید. قطعه کد لیست شده در زیر برای افزودن یک ContextMenu به بالای GridView است.

<GridView AllowsColumnReorder="true" ColumnHeaderToolTip="Authors">
    
    <!-- Add a ContextMenu to GridView Header -->
    <GridView.ColumnHeaderContextMenu>
        <ContextMenu >
            <MenuItem Header="Ascending" Click="MenuItem_Click" />
            <MenuItem Header="Descending" />
        </ContextMenu>
    </GridView.ColumnHeaderContextMenu>                  
    <!-- Add GridVeiw Columns -->                    
    <GridViewColumn Header="Name" Width="120" DisplayMemberBinding="{Binding Path=Name}" />
    <GridViewColumn Header="Age" Width="50" DisplayMemberBinding="{Binding Path=Age}" />
    <GridViewColumn Header="Book" Width="250" DisplayMemberBinding="{Binding Path=Book}" />
    <GridViewColumn Header="MVP" Width="50" DisplayMemberBinding="{Binding Path=Mvp}" />
    
</GridView>

خروجی قطعه کد بالا نیز به صورت زیر خواهد بود :

GridView در WPF

افزودن یک CheckBox به Header یک GridView

خاصیت ColumnHeaderTemplate ارائه کننده قالب برای header های ستون ها است. با استفاده از این خاصیت ، میتوانید header های ستون های GridView را به شکلی که دوس دارید ، فرمت کنید. میتوانید CheckBox ها یا تصاویر را به header ستون ها اضافه کنید.

قطعه کد زیر نیز یک منبع DataTemplate با یک CheckBox و رنگ پیش زمینه ی نارنجی برای متن هایی که در header های ستون ها قرار میگیرند میباشد که میتوانیم در ColumnHeaderTemplate یک GridView قرار بدهیم.

<Window.Resources>        
    <DataTemplate x:Key="OrangeHeaderTemplate">
        <DockPanel>
            <CheckBox/>
            <TextBlock FontSize="10" Foreground="Orange"
                       FontWeight="Bold" >
      <TextBlock.Text>
        <Binding/>
      </TextBlock.Text>
            </TextBlock>
        </DockPanel>
    </DataTemplate>        
    
</Window.Resources>

قطعه کد زیر نیز ColumnHeaderTemplate یک GridView را تنظیم میکند.

<GridView AllowsColumnReorder="true" ColumnHeaderToolTip="Authors"
          ColumnHeaderTemplate="{StaticResource OrangeHeaderTemplate}" >

خروجی نیز به صورت زیر خواهد بود :

GridView در WPF

جمع بندی

این مقاله در رابطه با معرفی نحوه ی استفاده از GridView در WPF بود و سعی شده که تمام خصوصیات مورد نیاز آن به صورت تمام و کمال برایتان توضیح داده شود.
امیدوارم از آن لذت برده باشید!



 دانلود فايلهاي پروژه
  • پسورد: www.mspsoft.com


avatar داریوش فرخی

داریوش فرخی هستم از سال 92 شروع به یادگیری برنامه نویسی و از سال 93 در بخش برنامه نویسی و تولید محتوای سایت mspsoft.com مشغول هستم. فعالیتم نیز بیشتر در زمینه های برنامه نویسی با سی شارپ و asp.net بوده است. اوقات فراغتم را هم غالبا با تماشای فیلم یا بازی های کامپیوتری پر میکنم .

آخرین مطالب و تخفیفات در کانال تلگرام :) کانال تلگرام ام اس پی سافت
مطالب مرتبط
ديدگاه خود را ارسال کنيد


محبوب ترين ويدئو هاي انلاين
دوره برنامه نویسی فروشگاه اینترنتی
  • تعداد اعضا 80k
  • قيمت دوره۱۰۰,۰۰۰ تومان
  • امتيازدهي
    1 vote, average: 5٫00 out of 51 vote, average: 5٫00 out of 51 vote, average: 5٫00 out of 51 vote, average: 5٫00 out of 51 vote, average: 5٫00 out of 5( 5٫00 از 1 رای )
    Loading...
دوره آموزشی سیستم ثبت سفارش آنلاین
  • تعداد اعضا 80k
  • قيمت دوره۵۰,۰۰۰ تومان
  • امتيازدهي
    1 vote, average: 5٫00 out of 51 vote, average: 5٫00 out of 51 vote, average: 5٫00 out of 51 vote, average: 5٫00 out of 51 vote, average: 5٫00 out of 5( 5٫00 از 1 رای )
    Loading...
دوره طراحی سیستم مدیریت مشتریان
  • تعداد اعضا 80k
  • قيمت دوره۵۰,۰۰۰ تومان
  • امتيازدهي
    1 vote, average: 5٫00 out of 51 vote, average: 5٫00 out of 51 vote, average: 5٫00 out of 51 vote, average: 5٫00 out of 51 vote, average: 5٫00 out of 5( 5٫00 از 1 رای )
    Loading...