Я знаю, что это было задано раньше, но я действительно не могу понять, что здесь происходит, основываясь на этих ответах, потому что кажется, что предыдущие искатели разместили свои ivalueconverters под разными классами или файлами. Мой IValueConverter находится в пространстве имен Proc, но по какой-то причине, я получаю ошибки:xaml не видит мой ivalueconverter
Название «LatValueConverter» не существует в пространстве имен «CLR-имен: Учеб».
Название «LongValueConverter» не существует в пространстве имен «clr-namespace: Proc».
Код предназначен для загрузки внешнего файла и размещения изображений в соответствии с значениями lat/lon, указанными в файле. Приложение создается, но изображения не отображаются, что говорит о том, что этот метод не работает. (только показывая соответствующий код ниже)
Кроме того, эти ошибки содержатся в списке ошибок визуальной студии, но как LatValueConverter и LongValueConverter отображаются в выпадающем меню после ввода local:
в редакторе xaml. Я пробовал очистить/перестроить, но ошибки все еще появляются. Любые мысли о том, как это исправить?
Visual Studio 2015 Update 1 EDIT: Я написал этот вопрос, заметив его, пока не с помощью Visual Studio 2015 Update 1. Я повторно загружен проект в Visual Studio 2015 (нет обновлений) и без ошибок! Это, кажется, ошибка с обновлением Visual Studio 2015 1. Кто-нибудь знает о работе?
Вот XAML:
<Window x:Class="Proc.MainWindow"
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"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
xmlns:local="clr-namespace:Proc"
mc:Ignorable="d">
<Window.Resources>
<ResourceDictionary>
<local:LatValueConverter x:Key="latValueConverter" /> <!-- Errors are here -->
<local:LongValueConverter x:Key="longValueConverter" /> <!-- Errors are here -->
<sys:Double x:Key="mapWidth">950</sys:Double>
<sys:Double x:Key="mapHeight">530</sys:Double>
</ResourceDictionary>
</Window.Resources>
Вот MainWindow.xaml.cs:
namespace Proc
{
public partial class MainWindow : Window, INotifyPropertyChanged
{
//...
}
public class LatValueConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
double latitude = (double)value;
double height = (double)parameter;
int top = (int)((Constants.LatTop - latitude)/(Constants.LatTop - Constants.LatBottom) * height);
return top;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
public class LongValueConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
double longitude = (double)value;
double width = (double)parameter;
int left = (int)((Constants.LongLeft - longitude)/(Constants.LongLeft - Constants.LongRight) * width);
return left;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
}
Спасибо, но это не исправить. Может быть, проблема с моей визуальной студией? – Alex
Возможно. Убедитесь, что у вас установлена самая последняя версия. Также сделайте чистую и восстановите. Вызывается ли метод конвертации? – Kcvin
Я поставил точки останова на возврат для обоих конвертеров, они никогда не запускались. Также я очистил/перестроил. Так что кажется, что конверт не называется. – Alex