我有一个简单的窗口:
<Window x:Class="WinActivityManager"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Grid>
<ListView x:Name="lvItems" />
</Grid>
</Window>
以及后面的相关代码:
public partial class WinActivityManager : Window
{
private ObservableCollection<Activity> Activities { get; set; }
public WinActivityManager()
{
Activities = new ObservableCollection<Activity>();
InitializeComponent();
}
// Other code ...
}
如果我在窗口构造函数中编写以下绑定:
lvItems.ItemsSource = Activities;
那么当我在Activities
中添加或删除元素时,我的ListView会自动更新。
应如何用XAML编写绑定?
我试过了,但不管用:
<ListView x:Name="lvItems" ItemsSource="{Binding=Activities}" />
如何在XAML中实现这一点?
4条答案
按热度按时间xoshrz7s1#
杰西·詹姆斯说的是真的,但还不够。
你得把
作为
并且绑定应该是:
此致,
gab6jxml2#
您必须像其他人回答的那样将DataContext设置为this,但是您也可以设置
DataContext
到xaml
:bxgwgixi3#
在窗口构造函数中设置
DataContext = this
。然后,您将能够根据需要绑定Activity:
<ListView x:Name="lvItems" ItemsSource="{Binding Activities}" />
jgovgodb4#
这是因为视图的数据上下文还没有设置,你可以在后面的代码中设置:
或者,可以将窗口的
DataContext
设置为自身-DataContext="{Binding RelativeSource={RelativeSource Self}}"
通过研究MVVM design pattern和using an MVVM framework,您会更好。