veydlin
@veydlin
Мне никогда не жалко средств на свое любопытство

Почему не работает Converter?

Выдает ошибку
Не удалось разрешить ресурс BoolToVisibilityConverter

Самое забавное, что с проекта где я скопировал все нормально, да и до этого везде использовал этот код и работало

using System;
using System.Windows;
using System.Windows.Data;


//  Visibility="{Binding isSet, Converter={StaticResource BoolToVisibilityConverter}, ConverterParameter=true}"

namespace WellnessDevice.DataBinding {
    public class BoolToVisibilityConverter : IValueConverter {

        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            var flag = false;
            if (value is bool) {
                flag = (bool)value;
            } else if (value is bool?) {
                var nullable = (bool?)value;
                flag = nullable.GetValueOrDefault();
            }
            if (parameter != null) {
                if (bool.Parse((string)parameter)) {
                    flag = !flag;
                }
            }
            if (flag) {
                return Visibility.Visible;
            } else {
                return Visibility.Collapsed;
            }
        }



        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            var back = ((value is Visibility) && (((Visibility)value) == Visibility.Visible));
            if (parameter != null) {
                if ((bool)parameter) {
                    back = !back;
                }
            }
            return back;
        }

    }
}


<Window x:Class="WellnessDevice.View.MainView"
        
        xmlns:local="clr-namespace:WellnessDevice.DataBinding"
        
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        mc:Ignorable="d"
        Title="WellnessDevice" Height="290" Width="400">
    <Grid>

        <Label Content="Девайс 1" Visibility="{Binding device1Status.isDeviceConnect, Converter={StaticResource BoolToVisibilityConverter}, ConverterParameter=true}"/>
   
    </Grid>
</Window>


Причем VS говорит, что пространство local не требуется и предлагает удалить
xmlns:local="clr-namespace:WellnessDevice.DataBinding"


В какую сторону копать?
  • Вопрос задан
  • 523 просмотра
Решения вопроса 1
petermzg
@petermzg
Самый лучший программист
<Window.Resources>
      <local:BoolToVisibilityConverter x:Key="BoolToVisibilityConverter" />
</Window.Resources>
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы