有一个 ListView 和一个按钮来比较两个项目,当两个项目被选中时,这两个项目应该是活动的。有这个XAML代码:
<Button Command="{Binding CompareSnapshots}"
CommandParameter="{Binding SelectedItems, ElementName=SnapshotsListView}"
IsEnabled="{Binding SelectedItems, ElementName=SnapshotsListView, Converter={StaticResource selectedItemCollectionToBoolConverter}}"
Content="Compare"
HorizontalAlignment="Stretch"
VerticalAlignment="Top"
Margin="0,10,0,0"
Width="130"
Height="60"
Grid.Column="1"/>
转换器:
class SelectedItemCollectionToBoolConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (((IList<object>)value).Count == 2)
return true;
else
return false;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
问题是绑定仅在应用程序启动时才有效。怎么修?
XAML:
转换器: