私はWPFが初めてで、バインディングをいじっています。List
たとえば、グリッド内の人のリストを表示するために、Binding を a に設定することができました。私が今したいのは、Binding に条件を設定し、この条件を満たす人だけをグリッドから選択することです。私がこれまでに持っているものは次のとおりです。
// 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 コード内でこれを行う方法はありますか?