1

Windows ストア サンプル アプリケーション XAML Twitter クライアント 1 を実行して、自分のアプリケーションで同じ機能を取得します。しかし、1対1のサンプルページでは製本作業ができません。

これは友達を表示するための私のグリッドです:

  <GridView x:Name="FriendsGrid" 
                  Grid.Row="2" 
                  Grid.Column="1" 
                  HorizontalAlignment="Left" 
                  VerticalAlignment="Top" 
                  Margin="10,10,0,0"
                  ItemsSource="{Binding Friends}" 
                  ItemTemplate="{StaticResource FriendItemTemplate}" 
                  Grid.ColumnSpan="2">
        <GridView.DataContext>
            <Model:FriendsViewModel/>
        </GridView.DataContext>

製本用テンプレート:

<Page.Resources>
    <DataTemplate x:Key="FriendItemTemplate">
        <Grid Height="200" Width="300">
            <Grid.RowDefinitions>
                <RowDefinition/>
                <RowDefinition/>
            </Grid.RowDefinitions>
            <Grid.ColumnDefinitions>
                <ColumnDefinition/>
                <ColumnDefinition/>
            </Grid.ColumnDefinitions>

            <Image HorizontalAlignment="Left" 
                       Height="80" Width="130" 
                       Margin="10,10,0,0" 
                       VerticalAlignment="Top" 
                       Source="{Binding RealPhoto}" 
                       Stretch="UniformToFill"/>

            <TextBlock Grid.Column="1" 
                           HorizontalAlignment="Left" 
                           Margin="10,10,0,0" 
                           TextWrapping="Wrap" 
                           VerticalAlignment="Top" 
                           Height="80" 
                           Width="130" 
                           Text="{Binding FirstName}"/>

            <TextBlock HorizontalAlignment="Left"
                           Margin="10,10,0,0" 
                           Grid.Row="1" 
                           TextWrapping="Wrap"
                           Text="{Binding LastName}"
                           VerticalAlignment="Top"
                           Width="280" Height="80"
                           Grid.ColumnSpan="2" />
        </Grid>
    </DataTemplate>
</Page.Resources>

コード ビハインド ファイル:

    private FriendsViewModel _model;

    public MyPage()
    {
        this.InitializeComponent();
        _model = new FriendsViewModel();

        FriendsGrid.DataContext = _model;
    }

モデルにデータを入力するよりも、アプリケーションでは、追加したのとまったく同じアイテム数が表示されますが、アイテムは空です。デバッグを使用すると、そのモデルは空ではありません。また、テンプレートに値をハードコーディングすると、それらが表示されます。

GitHub でプロジェクトをテストする

4

2 に答える 2

1

モデルのプロパティにゲッターとセッターを追加するのを忘れました。最初に私はこれを持っていました:

public double Uid;

私が追加したよりも{get; セットする;}

[DataContract]
public class Friend
{
    [DataMember(Name = "uid")] 
    public double Uid { get; set; }

    [DataMember(Name="first_name")]
    public string FirstName { get; set; }

    [DataMember(Name="last_name")]
    public string LastName { get; set; }

    [DataMember(Name="online")]
    public bool Online { get; set; }

    [DataMember(Name = "photo")]
    public string Photo { get; set; }

    public ImageSource RealPhoto { get; set; }
}
于 2012-10-09T20:09:57.620 に答える
0

ビュー モデルの変更を確認するには、 を実装する必要がありますINotifyPropertyChangedNotifyPropertyChangedこれを行うことの一部は、値が変更された場合にプロパティを呼び出すことです。

于 2012-10-09T20:19:13.490 に答える