Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > WPF, UWP, WinRT, XAML
Регистрация

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.10.2014, 09:52   #1
magnuz
Пользователь
 
Регистрация: 07.08.2012
Сообщений: 34
По умолчанию Не работает конвертер типов при биндинге

Код:
public class BoolToVisibleOrHidden : IValueConverter
    {
        #region Constructors
        /// <summary>
        /// The default constructor
        /// </summary>
        public BoolToVisibleOrHidden() { }
        #endregion
        #region Properties
        public bool Collapse { get; set; }
        public bool Reverse { get; set; }
        #endregion
        #region IValueConverter Members
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            bool bValue = (bool)value;
            if (bValue != Reverse)
            {
                return Visibility.Visible;
            }
            else
            {
                if (Collapse)
                    return Visibility.Collapsed;
                else
                    return Visibility.Hidden;
            }
        }        
        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            Visibility visibility = (Visibility)value;
            if (visibility == Visibility.Visible)
                return !Reverse;
            else
                return Reverse;
        }
        #endregion
    }
Код:
<my:BoolToVisibleOrHidden x:Key="BoolToVisibleOrHidden1" />
Цитата:
<DataGridTemplateColumn Width="Auto" Visibility="{Binding ElementName=stacker1, Path=EditCurrent, Converter={StaticResource BoolToVisibleOrHidden1}, ConverterParameter=false, UpdateSourceTrigger=PropertyChanged }">
Не работает. При том что для данного грида IsManipulationEnabled="True" . А не исчезает когда надо.
magnuz вне форума Ответить с цитированием
Старый 08.10.2014, 11:20   #2
Luuzuk
Форумчанин
 
Аватар для Luuzuk
 
Регистрация: 18.01.2012
Сообщений: 975
По умолчанию

убрать нафиг
Код:
public bool Collapse { get; set; }
        public bool Reverse { get; set; }
и все, что с ними связано, т.к. и collapse И reverse всегда равны false.

Сам конвертер суть однострочник:
Код:
return ((bool)value) ? Visibility.Visible : Visibility.Hidden;
Для варианта Collapsed лучше создать отдельный конвертер. Инвертированность можно передавать параметром, или просто сделать доп.конвертер, по вкусу.
Благодарить в репутацию. Проклинать — туда же
Luuzuk вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Несоответствие типов данных при условии отбора. Voindozor2 БД в Delphi 6 14.05.2014 12:44
Программа на Visual C# работает при запуске руками, но не работает при попытки автоматического запуска Bug$ Помощь студентам 18 21.10.2013 16:22
Visual C++ 2005 Expres не работает преобразование типов, выдает ошибку. MaratZahidyl Visual C++ 20 07.09.2011 16:44
Программа работает пошагово, но не работает при запуске -Katerina- Microsoft Office Excel 3 12.07.2011 03:40
При написании кода не открывается список типов, объектов. garic Microsoft Office Excel 3 14.03.2009 18:56