Prism for Windows Runtimeを使ったODataの更新アプリサンプル

サンプルプログラムの概要このサンプルプログラムは、http://www.odata.org/odata-services/のOData(read/write)で定義されているPersonエンティティを読み込んでNameプロパティを編集するサンプルプログラムです。以下のような動作をします。起動直後は、何も表示されません。アプリバーに表示されている読み込みボタンを選択すると、データが読み込まれて表示されます。読み込まれたデータを選択するとNameプロパティの編集用画面に遷移します。データを編集して、アプリバーの保存ボタンを選択すると、データがサーバーに反映さ

C# (114.3 KB)
 
 
 
 
 
(0)
36 times
Add to favorites
10/10/2014
E-mail Twitter del.icio.us Digg Facebook
<prism:VisualStateAwarePage
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:ODataReadWriteSampleApp.Views"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:prism="using:Microsoft.Practices.Prism.StoreApps"
    xmlns:mvvm="using:Microsoft.Practices.Prism.Mvvm"
    xmlns:ViewModels="using:ODataReadWriteSampleApp.ViewModels"
    xmlns:Interactivity="using:Microsoft.Xaml.Interactivity" xmlns:Core="using:Microsoft.Xaml.Interactions.Core" 
    xmlns:Commons="using:ODataReadWriteSampleApp.Commons" 
    x:Name="pageRoot"
    x:Class="ODataReadWriteSampleApp.Views.MainPage"
    mc:Ignorable="d"
    d:DataContext="{d:DesignInstance IsDesignTimeCreatable=True, Type=ViewModels:MainPageViewModel}"
    mvvm:ViewModelLocator.AutoWireViewModel="True">

    <prism:VisualStateAwarePage.Resources>
        <!-- TODO: Delete this line if the key AppName is declared in App.xaml -->
        <x:String x:Key="AppName">MainPage</x:String>
    </prism:VisualStateAwarePage.Resources>
    <prism:VisualStateAwarePage.BottomAppBar>
        <CommandBar IsOpen="True" IsSticky="True">
            <AppBarButton Icon="Download" Label="読み込み" Command="{Binding LoadPeopleCommand, Mode=OneWay}" ToolTipService.ToolTip="サーバーからデータを読み込みます"/>
        </CommandBar>
    </prism:VisualStateAwarePage.BottomAppBar>

    <!--
        This grid acts as a root panel for the page that defines two rows:
        * Row 0 contains the back button and page title
        * Row 1 contains the rest of the page layout
    -->
	<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
		<Grid.ChildrenTransitions>
			<TransitionCollection>
				<EntranceThemeTransition/>
			</TransitionCollection>
		</Grid.ChildrenTransitions>
		<Grid.RowDefinitions>
			<RowDefinition Height="140"/>
			<RowDefinition Height="*"/>
		</Grid.RowDefinitions>

		<!-- Back button and page title -->
		<Grid>
			<Grid.ColumnDefinitions>
				<ColumnDefinition Width="120"/>
				<ColumnDefinition Width="*"/>
			</Grid.ColumnDefinitions>
			<Button x:Name="backButton" 
				AutomationProperties.Name="Back"
				AutomationProperties.AutomationId="BackButton"
				AutomationProperties.ItemType="Navigation Button"
				Command="{Binding GoBackCommand, ElementName=pageRoot}"
				Margin="39,59,39,0" 
				Style="{StaticResource NavigationBackButtonNormalStyle}"
				VerticalAlignment="Top" />
			<TextBlock x:Name="pageTitle" 
				Grid.Column="1" 
				IsHitTestVisible="false" 
				Margin="0,0,30,40"
				Style="{StaticResource HeaderTextBlockStyle}" 
				Text="{StaticResource AppName}" 
				TextWrapping="NoWrap" 
				VerticalAlignment="Bottom" />
		</Grid>
		<ListView Grid.Row="1" Padding="120,0,30,0" ItemsSource="{Binding People}" ItemTemplate="{StaticResource PersonDataTemplate}" IsItemClickEnabled="True" SelectionMode="None">
			<Interactivity:Interaction.Behaviors>
				<Commons:ItemClickToCommandBehavior Command="{Binding NavigateEditPageCommand}" />
			</Interactivity:Interaction.Behaviors>
		</ListView>
	</Grid>
</prism:VisualStateAwarePage>