我已经将ReactiveList Orders绑定到了wpf中的datagrid。
我通过遵循以下语法成功获得了一个选定的订单
private Order _selectedOrder;
public Order SelectedOrder
{
get { return _selectedOrder; }
set { this.RaiseAndSetIfChanged(ref _selectedOrder, value); }
}
this.WhenAnyValue(x => x.Orders.ItemChanged).Select(x => _selectedOrder = ((Order)x));
但是,如果我在datagrid中多次选择订单,如何获得所选项目?
最佳答案
您的代码似乎没有执行您想要的操作,因为您似乎正在听ReactiveList ItemChanged可观察到的消息(当您的数据源发生更改时将触发该事件),而您要观看的是网格选择。
尽管未经测试,但以下代码似乎可以更好地匹配您要实现的目标(使用reactui-events帮助器):
// in the VM
public IList<Order> SelectedOrders { /* regular RxUI property as usual */ }
// in the view
this.Grid.Events().SelectionChanged
.Select(_ => this.Grid.SelectedItems.Cast<Order>().ToList())
.Subscribe(list => ViewModel.SelectedOrders = list);
我是否了解您想要实现的目标?
关于c# - 使用ReactiveUI从ReactiveList获取选定项集合,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32440637/