1

这是我试图在 xaml 中填充项目的地方

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

这是视图模型中的一个虚拟方法,我已绑定

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

但这没有给出任何输出。这个方法也没有被调用。

4

3 回答 3

1

这里有很多问题。

第一个是您不能绑定到方法。您只能绑定到一个属性。

第二个是你将 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 回答
1

这不起作用,因为您正在尝试绑定到方法。您只能绑定到属性。

public string[] EventsList
{
    get
    {
        string[] values = {"event1", "event2"};
        return values;
    }
}
于 2013-09-03T12:41:11.920 回答
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 回答