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

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

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


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 20.10.2015, 03:04   #1
alezha
Форумчанин
 
Регистрация: 16.04.2011
Сообщений: 126
Репутация: 10
По умолчанию 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 вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

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


02:19.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.