我对 WPF 很陌生,我正在玩 Bindings。我设法将 Binding 设置为 aList
以显示,例如,网格中的人员列表。我现在想要的是在绑定上设置一个条件,并从网格中只选择满足这个条件的人。到目前为止,我所拥有的是:
// In MyGridView.xaml.cs
public class Person
{
public string name;
public bool isHungry;
}
public partial class MyGridView: UserControl
{
List<Person> m_list;
public List<Person> People { get {return m_list;} set { m_list = value; } }
public MyGridView() { InitializeComponent(); }
}
// In MyGridView.xaml
<UserControl x:Class="Project.MyGridView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Grid>
<DataGrid Name="m_myGrid" ItemsSource="{Binding People}" />
</Grid>
</UserControl>
我现在想要的是只在列表Person
中包含饥饿的实例。我知道一种在代码中执行此操作的方法,例如添加一个新属性:
public List<Person> HungryPeople
{
get
{
List<Person> hungryPeople = new List<Person>();
foreach (Person person in People)
if (person.isHungry)
hungryPeople.Add(person);
return hungryPeople;
}
}
然后将 Binding 更改为HungryPeople
。但是,我认为这不是一个很好的选择,因为它涉及制作额外的公共属性,这可能是不可取的。有没有办法在 XAML 代码中解决所有这些问题?