1

これは、xamlにアイテムを入力しようとしている場所です

<ScrollViewer Grid.Row="2">
                <StackPanel>
                    <ItemsControl ItemsSource="{Binding EventsList}">
                        <ItemsControl.ItemTemplate>
                            <DataTemplate>
                                <TextBlock Text="{Binding Value}"/>
                            </DataTemplate>
                        </ItemsControl.ItemTemplate>
                    </ItemsControl>
                </StackPanel>
            </ScrollViewer>

これはビュー モデルのダミー メソッドであり、Binded

public string[] EventsList()
        {
            string[] values = {"event1", "event2"};
            return values;
        }

しかし、これは何の出力も与えていません。また、このメソッドも呼び出されていません。

4

3 に答える 3

1

ここに多くの問題があります。

1 つ目は、メソッドにバインドできないことです。プロパティにのみバインドできます。

2 つ目は、TextBlock をValueオブジェクトの にバインドしていることです。これは文字列であるはずです。文字列にはValueプロパティがありません。

代わりにこれを試してください:

public string[] EventsList
{
    get
    {
        string[] values = {"event1", "event2"};
        return values;
    }
}

次に、このプロパティにバインドし、完全な文字列オブジェクトを表示します (を使用して{Binding})

<ScrollViewer Grid.Row="2">
    <StackPanel>
        <ItemsControl ItemsSource="{Binding EventsList}">
            <ItemsControl.ItemTemplate>
                <DataTemplate>
                    <TextBlock Text="{Binding}"/>
                </DataTemplate>
            </ItemsControl.ItemTemplate>
        </ItemsControl>
    </StackPanel>
</ScrollViewer>

注: プロパティを宣言しているクラスがページEventListのプロパティに割り当てられていることを前提としていDataContextます。

于 2013-09-03T12:40:00.707 に答える
0

これを試して

MainPage.xaml
      <ScrollViewer Grid.Row="2">
            <StackPanel>
                <ItemsControl Name="itemControl" ItemsSource="{Binding EventsList}">
                    <ItemsControl.ItemTemplate>
                        <DataTemplate>
                            <TextBlock Text="{Binding}"/>
                        </DataTemplate>
                    </ItemsControl.ItemTemplate>
                </ItemsControl>
            </StackPanel>
        </ScrollViewer>

MainPage.xaml.cs

 public MainPage()
    {
        InitializeComponent();            

        this.itemControl.ItemSource = EventsList();
    }
于 2013-09-03T12:40:27.943 に答える