这是我尝试在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;
}
但这并没有给出任何输出。此方法也没有被调用。
答案 0 :(得分: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
属性。
答案 1 :(得分:1)
这不起作用,因为您正在尝试绑定到方法。您只能绑定到属性。
public string[] EventsList
{
get
{
string[] values = {"event1", "event2"};
return values;
}
}
答案 2 :(得分: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();
}