我有一个包含多个MenuItem的菜单。子MenuItem之一具有绑定到IEnumerable [string]的ItemSource。这些菜单项命令中的每一个都应使用其自身的参数(IEnumerable中的一项)绑定到视图模型中的同一ReactiveCommand。还有一个附加的MenuItem绑定到单独的ReactiveCommand。我正在尝试在这些控件上使用ReactiveUI绑定,但不确定如何实现。
我已经能够使用标准WPF / .xaml绑定正确地进行绑定,但是使用ReactiveUI不能完全做到这一点。
下面是我如何使用标准绑定来实现它。
<Menu>
<Menu.Resources>
<CollectionViewSource x:Key="TaskConfigurationNames" Source="{Binding TaskConfigurationNames}"/>
</Menu.Resources>
<MenuItem Header="_Tasks"
Background="{StaticResource PrimaryColorBrush}"
Foreground="{StaticResource OnPrimaryColorBrush}">
<MenuItem Name="SaveTaskConfigMenuItem"
Header="Save Task Configuration"
Command="{Binding SaveTaskConfiguration}"/>
<MenuItem Name="SaveTaskConfigAsMenuItem"
Header="Save Task Configuration As...">
<MenuItem.ItemContainerStyle>
<Style TargetType="{x:Type MenuItem}"
BasedOn="{StaticResource UnderScoredMenuItem}">
<Setter Property="Command"
Value="{Binding RelativeSource={RelativeSource AncestorType={x:Type Menu}}, Path=DataContext.SaveAsNewTaskConfiguration}"/>
<Setter Property="CommandParameter"
Value="{Binding }"/>
</Style>
</MenuItem.ItemContainerStyle>
<MenuItem.ItemsSource>
<CompositeCollection>
<CollectionContainer Collection="{Binding Source={StaticResource TaskConfigurationNames}}"/>
<MenuItem Name="AddNewTaskConfigMenuItem"
Header="Add New..."
Command="{Binding SaveAsTaskConfiguration}"/>
</CompositeCollection>
</MenuItem.ItemsSource>
</MenuItem>