这是一个快速的问题。我有一个这样定义的 XAML:
<ComboBox Height="25" Width="150" Margin="10,0,0,0" VerticalAlignment="Top"
HorizontalAlignment="Left" ItemsSource="{Binding Path=Simulations}"
IsSynchronizedWithCurrentItem="True" SelectedItem="{Binding Path=Simulation}"/>
<ScrollViewer HorizontalAlignment="Stretch" VerticalAlignment="Stretch"
HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto"
Content="{Binding Path=Simulations.CurrentItem.OptionsPanel}"/>
<Button Content="Simulate" Height="23" HorizontalAlignment="Center"
Margin="0,0,0,20" VerticalAlignment="Bottom" Width="75"
Command="{Binding Path=Simulations.CurrentItem.SimulateCommand}"
CommandParameter="{Binding Path=Simulations.CurrentItem.CommandParameter}"/>
我想要实现的是,当用户从组合框中选择一个模拟时,会显示一个面板,其中包含特定于所选模拟的控件。每个模拟都有自己独特的参数集,因此,每个模拟都需要一个独特的“模拟”命令。上面的 XAML 几乎完全按照要求工作。当用户选择模拟时,特定的用户控件被插入到 ScrollViewer 中,并为按钮设置了适当的命令。我遇到的问题是CommandParameter。在模拟选择后立即对其进行评估,但当时大多数选项仍然为空,因为用户还没有机会修改它们。所以,基本上,我需要的是在按下按钮时强制重新评估 CommandParameter。也许有人可以帮忙,