泥庭

2013年5月30日

Gridへのアイテムのバインド(StoreApps編)

Filed under: .NET, ストアアプリ, Windows8 — タグ: — yone64 @ 10:03 PM

前回の続き。

StoreAppsの場合、StyleのSetterでBindingを差し込むことができないため、CustomControlを作成する必要があります。たとえば、以下のような感じです。

public sealed class BindableGrid : ItemsControl
{
    protected override void PrepareContainerForItemOverride(DependencyObject element, object item)
    {
        base.PrepareContainerForItemOverride(element, item);

        var container = element as FrameworkElement;
        Binding binding1 = new Binding();
        binding1.Mode = BindingMode.OneTime;
        binding1.Source = item;
        binding1.Path = new PropertyPath("ColumnIndex");

        Binding binding2 = new Binding();
        binding2.Mode = BindingMode.OneTime;
        binding2.Source = item;
        binding2.Path = new PropertyPath("RowIndex");

        container.SetBinding(Grid.ColumnProperty, binding1);
        container.SetBinding(Grid.RowProperty, binding2);
    }
}

これで、XAML側をItemsControlから、カスタムコントロールに切り替えれば、終了。XAMLだけで完結しないあたりが、とても残念。

コメントする »

まだコメントはありません。

RSS feed for comments on this post. TrackBack URI

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

WordPress.com で無料サイトやブログを作成.

%d人のブロガーが「いいね」をつけました。