如何判断ItemsControl数据模板中的项目是否最新?

| 我有一个绑定到ICollectionView的ItemsControl。 我需要从一个项目的DataTemplate判断出它是否是当前的。 注意:这可以从列表框中进行,但是我希望ItemsControl看起来像。     
已邀请:
我会用MultiValueConverter做到这一点,它将数据模板化的项目与视图中的CurrentItem进行比较,例如
<local:EqualityComparisonConverter x:Key=\"EqualityComparisonConverter\"/>
<DataTemplate DataType=\"{x:Type local:Employee}\">
    <StackPanel Orientation=\"Horizontal\">
        <CheckBox IsEnabled=\"False\">
            <CheckBox.IsChecked>
                <MultiBinding Converter=\"{StaticResource EqualityComparisonConverter}\" Mode=\"OneWay\">
                    <Binding RelativeSource=\"{RelativeSource AncestorType=ItemsControl}\"
                             Path=\"ItemsSource.CurrentItem\"/>
                    <Binding />
                </MultiBinding>
            </CheckBox.IsChecked>
        </CheckBox>
        ...
转换器:
public class EqualityComparisonConverter : IMultiValueConverter
{
    #region IMultiValueConverter Members

    public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
    {
        if (values.Length < 2) throw new Exception(\"At least two inputs are needed for comparison\");
        bool output = values.Aggregate(true, (acc, x) => acc && x.Equals(values[0]));
        return output;
    }

    public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
    {
        throw new NotSupportedException();
    }

    #endregion
}
确保以某种方式实际更改当前项目,否则将毫无意义。
ItemsControl
中的
ItemsSource
显然也必须是ICollectionView,但是您还是说是这样。     

要回复问题请先登录注册