0

这是一个快速的问题。我有一个这样定义的 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。也许有人可以帮忙,

4

1 回答 1

0

假设您CommandParameter是您的类的一个属性Simulation,您需要确保您的 Simulation 类将 CommandParameter 属性实现为 a DependencyProperty,或者 Simulation 类本身应该在其属性INotifyPropertyChanged上发送更改通知来实现。CommandParameter

如果实现了这些方法中的任何一种,那么您的 CommandParameter 属性应在更改按钮的命令属性时更新

于 2013-04-19T10:28:37.117 回答