2015-06-08 3 views
3

У меня есть проект, который имеет несколько ссылок на культуру UI, как это:'Invalid Markup' в Xaml дизайнера визуального студии 2015

<Window x:Class="WpfApplication1.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:sysglb="clr-namespace:System.Globalization;assembly=mscorlib" 
    xmlns:local="clr-namespace:WpfApplication1" 
    mc:Ignorable="d" 
    Title="MainWindow" Height="350" Width="525"> 
<Grid> 
    <StackPanel Orientation="Horizontal" Grid.Column="1"> 
     <TextBlock Text="{Binding MyData, StringFormat={}{0:C2}, ConverterCulture={x:Static sysglb:CultureInfo.CurrentUICulture}}" /> 
    </StackPanel> 
</Grid> 

В коде позади, у меня есть простая реализация:

public partial class MainWindow : Window 
{ 
    public MainWindow() 
    { 
     InitializeComponent(); 
     DataContext = this; 
     MyData = 10; 
    } 

    public int MyData { get; set; } 
} 

В App_Startup я инициализирован CurrentUICulture:

Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-GB"); 

Когда я открываю любой такой интерфейс в конструкторе, я получаю «Invalid Разметка» с ошибкой:

The member "CurrentUICulture" is not recognized or is not accessible. 

Любая идея, почему это основной случай использования не будет работать в Xaml дизайнером для Visual Studio 2015 RC? Я попробовал варианты, упомянутые в более раннем сообщении, но это не работает (Visual studio 2012 XAML designer invalid markup)

Раньше при загрузке дизайнера мы могли видеть элементы управления и пользовательский интерфейс без проблем в Visual Studio 2010, 2012 и 2013 годах. Мы решили попробуйте Visual Studio 2015 RC, но похоже, что это сейчас нарушено.

+0

Попробуйте следующее: System.Threading.Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo ("en-GB"); –

+0

@GulMdErshad Пробовал, не работает. Проблема специфична для VS 2015 RC ... – nkanani

+0

Удаленная связь, хотя есть еще одна проблема, на которую был дан ответ: http://stackoverflow.com/questions/29994558/visual-studio-2015-c-sharp-xaml-designer- doesnt-load? rq = 1 – nkanani

ответ

1

В дополнение к моему комментарию, что изменение целевой структуры .NET Framework 4.6 решает эту проблему, я думаю, что это ошибка в редакторе VS2015 XAML, что-то связано с изменениями в CultureInfo.CurrentUICulture Property, которые теперь читаются и записываются.

Как обходным я изменил запуск приложения для

CultureInfo.DefaultThreadCurrentUICulture = new CultureInfo("en-GB"); 

и XAML в

<TextBlock Text="{Binding MyData, StringFormat={}{0:C2}, ConverterCulture={x:Static sysglb:CultureInfo.DefaultThreadCurrentUICulture}}"/> 

и, кажется, доволен.

+0

Что-то еще, что, похоже, сработало (изменение рамки не является вариантом в моем случае), заключается в изменении конфигурации сборки. Mine был установлен в AnyCPU, поэтому я меняю его на 64 бит и снова на AnyCPU. Он перестроил папку obj, и все снова работает. Возможно, удаление этой папки послужило бы той же цели. – maplemale

Смежные вопросы