Форум программистов
 
О проблемах, например, с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Вернуться   Форум программистов > .NET > WPF, UWP, WinRT, XAML
Регистрация

Восстановить пароль
Повторная активизация e-mail

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Ответ
 
Опции темы
Старый 20.10.2015, 02:04   #1
alezha
Форумчанин
 
Регистрация: 16.04.2011
Сообщений: 126
По умолчанию MultiBinding проверить все индексы Listview

Есть проблема. Хочу проверить все индексы в ListView. Если они совпадают с CurrentActiveIndex, то изменить значение Background. Вот что получилось.

Код:
        <mvvmLight1:MultiConverter x:Key="SomeMultiConverter" />
        <Style TargetType="{x:Type ListViewItem}">
            <Style.Triggers>
                <DataTrigger Value="True">
                    <DataTrigger.Binding>
                        <MultiBinding Converter="{StaticResource SomeMultiConverter}">
                            <Binding RelativeSource="{RelativeSource FindAncestor, AncestorType=ListViewItem}"></Binding>
                            <Binding Path="CurrentActiveIndex"></Binding>
                        </MultiBinding>
                    </DataTrigger.Binding>
                    <Setter Property="Background" Value="Blue" />
                </DataTrigger>
             </Style.Triggers>
        </Style>

SomeMultiConverter.cs
Код:
public class MultiConverter : IMultiValueConverter
    {
        public object Convert(object[] values, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            DependencyObject item = (DependencyObject)values[0];
            ItemsControl ic = ItemsControl.ItemsControlFromItemContainer(item);

            return ic.ItemContainerGenerator.IndexFromContainer(item) == (int)values[1];
        }

        public object[] ConvertBack(object value, Type[] targetTypes, object parameter, System.Globalization.CultureInfo culture)
        {
            throw new NotImplementedException();
        }
    }
происходит ошибка в
Код:
DependencyObject item = (DependencyObject)values[0];
: Unable to cast object of type 'MS.Internal.NamedObject' to type 'System.Windows.DependencyObject'.
alezha вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
MultiBinding.StringFormat: не работает D][mon WPF, UWP, WinRT, XAML 3 10.09.2014 17:52
проверить все ли элементы в массиве различны. Proskurina Паскаль, Turbo Pascal, PascalABC.NET 15 18.09.2012 02:08
проверить все ли элементы в массиве различны. Proskurina Помощь студентам 7 08.09.2012 22:36
Как узнать индексы выделенных итемов в ListView при OwnerData? 3D Hunter Общие вопросы Delphi 3 02.10.2009 09:24
как проверить все ли поля заполнены в СТРОКЕ ? Максим-2 Компоненты Delphi 6 03.08.2007 21:31


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS