我有一个非常简单的界面设计,里面包含一个ListView和一个按钮。 当点击按钮时,我想要填充Listview。
<Grid>
<Button Click="ButtonBase_OnClick" Content="Button" HorizontalAlignment="Left" Margin="349,259,0,0" VerticalAlignment="Top" Width="75"/>
<ListView Margin="10,10,10,202" Name="lvUsers" ItemsSource="{Binding SomeData.Users}">
<ListView.View>
<GridView>
<GridViewColumn Header="Name" Width="120" DisplayMemberBinding="{Binding Name}" />
</GridView>
</ListView.View>
</ListView>
</Grid>
我已将ListView的ItemSource属性绑定到
SomeData.Users
,它是一个ObservableCollection,当其更新、添加、删除或刷新时应通知UI。在下面的列中,我将DisplayMember绑定到可观察集合的Name
属性。这是
SomeData
类。public class SomeData
{
public static ObservableCollection<User> Users { get; } = new ObservableCollection<User>();
public static void Populate()
{
Users.Add(new User() { Name = "John Doe", Age = 42, Mail = "john@doe-family.com" });
Users.Add(new User() { Name = "Jane Doe", Age = 39, Mail = "jane@doe-family.com" });
Users.Add(new User() { Name = "Sammy Doe", Age = 7, Mail = "sammy.doe@gmail.com" });
}
}
public class User
{
public string Name { get; set; }
public int Age { get; set; }
public string Mail { get; set; }
}
以下是MainWindow.cs文件:
public MainWindow()
{
InitializeComponent();
}
private void ButtonBase_OnClick(object sender, RoutedEventArgs e)
{
SomeData.Populate();
}
据我所知,我不应该在任何地方设置DataContext.. 对吗?