SilverLight0002 のバックアップ(No.2) - PukiWiki

SilverLight?

DataGridコントロール

動的カラムの追加とバインド
[edit]

このページのトップへ

一般の列を利用する場合
[edit]

this.dataGrid1.Columns.Add(new DataGridTextColumn { Header = "ID", Binding = new System.Windows.Data.Binding("id") });
このページのトップへ

テンプレート列(DataGridTemplateColumn)を利用する場合
[edit]

■方法一

テンプレートのXAMLのコードを定義する

private string CreateColumnTemplate( string propertyName)
{
   StringBuilder CellTemp = new StringBuilder();
   CellTemp.Append("<DataTemplate ");
   CellTemp.Append("xmlns='http://schemas.microsoft.com/winfx/"); CellTemp.Append("2006/xaml/presentation' ");
   CellTemp.Append("xmlns:x='http://schemas.microsoft.com/winfx/2006/xaml'>"); 
   CellTemp.Append(String.Format("<TextBlock Text='{{Binding Path={0}}}'/>", propertyName)); 
   CellTemp.Append("</DataTemplate>");
   return CellTemp.ToString();
}

C#側のソースコード:
※System.Windows.Markup.XamlReaderクラスを利用して、Xamlを読み込む

DataGridTemplateColumn dtc = new DataGridTemplateColumn();
dtc.CellTemplate = (DataTemplate)XamlReader.Load(CreateColumnTemplate( "id"));
this.dataGrid2.Columns.Add(dtc);

■方法二

リソースにテンプレートを定義します。

<Application.Resources>
   <ResourceDictionary>
        <DataTemplate x:Key="myCellTemplate">
            <TextBlock Text="{Binding Path=id}"/>
        </DataTemplate>
   </ResourceDictionary>                
</Application.Resources>

C#側のソースコード:

DataGridTemplateColumn dtc = new DataGridTemplateColumn();
dtc.CellTemplate = (DataTemplate)App.Current.Resources["myCellTemplate"];           
this.dataGrid2.Columns.Add(dtc);
このページのトップへ

セルのテンプレート
[edit]

スタイルの定義:

<ResourceDictionary
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  xmlns:sdk="http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk">

   <Style x:Key="AlignCenter" TargetType="sdk:DataGridCell">
       <Setter Property="HorizontalContentAlignment" Value="Center" />
       <Setter Property="VerticalContentAlignment" Value="Center" />
   </Style>
</ResourceDictionary>

XAML側の使用:

<sdk:DataGrid AutoGenerateColumns="False"                       
     CellStyle="{Binding Source={StaticResource AlignCenter}}">

コメント:



0


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS

e[NȂECir Yahoo yV LINEf[^[Ōz500~`I
z[y[W ̃NWbgJ[h COiq@COsیI COze