SQLの窓

2012年09月07日


テキストリソースのバインディング / Windows Phone(C#)



Microsoft のページではこちら(方法 : 簡単なバインディングを作成する)になりますが、ここでは情報が足りないので補足します。

まず、名前空間の参照の為に『xmlns:local="clr-namespace:PhoneApp_Sample_01"』を追加します。

これは、PhoneApp_Sample_01 という名前空間で定義されたクラスを、XAML で参照する為の記述です。local: でクラスの実体にアクセスしてインスタンスを作成します。
※ local:クラス名
※ x:Key="インスタンス変数名"
※ 他の属性はプロパティ名
▲ インスタンスが作成された後にプロパティにこの値(プロパティの値)がセットされます

その次に、テキストリソースを供給するクラスと XAML とをリンクする .Resources の定義を追加します。

そして最後にデータのバインドを画面定義内に記述して完成です。

MainPage.xaml
<phone:PhoneApplicationPage 
    x:Class="PhoneApp_Sample_01.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
    xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d" d:DesignWidth="480" d:DesignHeight="768"
    FontFamily="{StaticResource PhoneFontFamilyNormal}"
    FontSize="{StaticResource PhoneFontSizeNormal}"
    Foreground="{StaticResource PhoneForegroundBrush}"
    SupportedOrientations="Portrait" Orientation="Portrait"
    shell:SystemTray.IsVisible="True"
    
    xmlns:local="clr-namespace:PhoneApp_Sample_01"
    
>

    <phone:PhoneApplicationPage.Resources>
        <local:TextResource
            x:Key="textData"
            pageName="初期ページ"
            appName="テキストリソースのバインディング"
        ></local:TextResource>
    </phone:PhoneApplicationPage.Resources>


    <!--LayoutRoot は、すべてのページ コンテンツが配置されるルート グリッドです-->
    <Grid x:Name="LayoutRoot" Background="Transparent">
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="*"/>
        </Grid.RowDefinitions>

        <!--TitlePanel は、アプリケーション名とページ タイトルを格納します-->
        <StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="12,17,0,28">
            <TextBlock
                x:Name="ApplicationTitle"
                Text="{Binding Source={StaticResource textData}, Path=appName}"
                Style="{StaticResource PhoneTextNormalStyle}"
            />
            <TextBlock
                x:Name="PageTitle"
                Text="{Binding Source={StaticResource textData}, Path=pageName}"
                Margin="9,-7,0,0"
                Style="{StaticResource PhoneTextTitle1Style}"
            />
        </StackPanel>

        <!--ContentPanel - 追加コンテンツをここに入力します-->
        <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0"></Grid>
    </Grid>

</phone:PhoneApplicationPage>
クラスはごく普通にプロジェクトに追加してプロパティを追加するだけです

TextResource.cs
using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;

namespace PhoneApp_Sample_01
{
    public class TextResource
    {
        private string _pageName;
        public string pageName
        {
            get
            {
                return _pageName;
            }
            set
            {
                _pageName = value;
            }
        }

        private string _appName;
        public string appName
        {
            get
            {
                return _appName;
            }
            set
            {
                _appName = value;
            }
        }

    }
}



【Windows Phoneの最新記事】
posted by lightbox at 2012-09-07 23:46 | Windows Phone | このブログの読者になる | 更新情報をチェックする
バッチ処理

Microsoft Office
container 終わり

フリーフォントで簡単ロゴ作成
フリーフォントでボタン素材作成
フリーフォントで吹き出し画像作成
フリーフォントではんこ画像作成
ほぼ自由に利用できるフリーフォント
フリーフォントの書体見本とサンプル
画像を大きく見る為のウインドウを開くボタンの作成

Android SDK ポケットリファレンス
改訂版 Webデザイナーのための jQuery入門
今すぐ使えるかんたん ホームページ HTML&CSS入門
CSS ドロップシャドウの参考デモ
Google Hosted Libraries
cdnjs
BUTTONS (CSS でボタン)
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり