查看
<StackPanel>
<StackPanel Orientation="Horizontal" VerticalAlignment="Center" HorizontalAlignment="Center" Grid.Row="2">
<RadioButton Content="Verified" IsChecked="{Binding Path=RadioAChecked,Mode=TwoWay}" Foreground="{StaticResource foretwo}"/>
<RadioButton Content="Not Verified" IsChecked="{Binding Path=RadioBChecked,Mode=TwoWay}" Foreground="{StaticResource foretwo}"/>
</StackPanel>
<ListView ItemsSource="{Binding BillList}">
<ListView.ItemTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding Bill_Type}" Style="{StaticResource textblock}"/>
<TextBlock Text="{Binding Bill_Status}" Style="{StaticResource textblock}"/>
<TextBlock Text="{Binding Bill_Date}" Style="{StaticResource textblock}"/>
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</StackPanel>
视图模型
public class BillViewModel : BindableBase
{
IBillDataServices _service;
public BillViewModel(IBillDataServices service)
{
_service = service;
_billList = _service.GetAllBill();
}
private ObservableCollection<BillModel> _billList;
public ObservableCollection<BillModel> BillList
{
get
{
return _billList;
}
set
{
_billList = value;
RaisePropertyChanged("BillList");
}
}
private bool _radioAChecked;
public bool RadioAChecked
{
get { return _radioAChecked; }
set
{
if (_radioAChecked == true)
{
}
}
}
private bool _radioBChecked;
public bool RadioBChecked
{
get { return _radioBChecked; }
set
{
_radioBChecked = true;
if (_radioBChecked == true)
{
}
}
}
我的viewmodel(ViewModel)中有一个名为_billList的集合。该集合包含Bill_Type,Bill_Status和Bill_Date。在这里,我需要在listview中进行过滤。我在集合中有Bill_Status的值(“是”和“否”)。如果我检查了第一个radiobutton,那么具有Bill_Status =“Yes”的行应该绑定到listview。如果选中第二个radiobutton,那么Bill_Status =“No”行应该绑定到listview。如何在uwp中这样做?请帮助我。
答案 0 :(得分:0)
完成此任务的最快方法是使用Linq过滤您的集合并将结果传递给您的可观察集合。
为了实现这一目标,您需要保留原始集合的所有值,您可以使用它们进行Linq过滤。
过滤后,将结果设置为可观察集合。