0

следующий код отлично работает под Windows 8.1 , и я недавно обновил свою ОС до Windows 10 и создал исключение.ComboBox SelectedItem выбрасывает исключение в Windows 10

Вот скриншот за исключением enter image description here

Это код XAML:

<ComboBox Grid.Row="3" HorizontalContentAlignment="Left" HorizontalAlignment="Left" 
         TabIndex="2" VerticalAlignment="Center" 
         ItemsSource="{Binding DateFormats}" 
         SelectedItem="{Binding DateFormatSelected, Mode=TwoWay}"> 
       <ComboBox.ItemTemplate> 
        <DataTemplate> 
         <StackPanel Orientation="Horizontal"> 
          <TextBlock Text="{Binding Value}" /> 
         </StackPanel> 
        </DataTemplate> 
       </ComboBox.ItemTemplate> 
      </ComboBox> 

Когда я удалил часть «SelectedItem» она работает, но я нужен SelectedItem будет отображаться. Пожалуйста, помогите.

Здесь информация об ошибке приложения для просмотра событий. Она не дает много информации либо

Faulting имени приложения: BoardPACWinApp.exe, версия: 0.0.0.1, отметка времени: 0x55bdb705 Faulting имя модуля: Windows.UI.Xaml.dll, версия: 10.0.10240.16397 , метка времени: 0x55af0da4 исключения код: 0xc000027b Fault смещения: 0x00722f90 Сбойного идентификатор процесса: 0x1e48 Faulting времени запуска приложения: 0x01d0cd2970f53bb1 Сбойного пути приложения: D: \ Projects \ BoardPACWinApp \ BoardPACWinApp \ Bin \ x86 \ Debug \ AppX \ BoardPACWinApp.exe Ошибка в пути модуля: C: \ Windows \ System32 \ Windows.UI.Xaml.dll Id: 38e21b5c-cf75-4849-81df-01bb412c291a Сбойного пакет Полное наименование: IronOneTechnologiesPvtLtd.BoardPACWinDemo_3.14.35.2_x86__na7z394ep8t7e Сбойного пакет-относительный идентификатор приложения: App

+2

Снимок экрана не очень полезен. Если вы запустили режим выпуска без использования Visual Studio, после сбоя вы можете получить полезную информацию об исключении из Event Viewer? – kennyzx

+0

Я обновил вопрос, к сожалению, он не дает много информации об ошибке. – SurenSaluka

ответ

0

Что я сделал это сделать SelectedItem связывание с помощью представления кода.

Вот мой XAML код:

<ComboBox x:Name="DateFormatsComboBox" Grid.Row="3" Style="{StaticResource CustomBlueComboBoxStyle}" 
        ItemsSource="{Binding DateFormats}" ItemContainerStyle="{StaticResource CustomBlueComboBoxItemStyle}"> 
      <!--NOTE: Removed coz Windows 10 had issues | 2015-08-16 | SurenM --> 
      <!--SelectedItem="{Binding DateFormatSelected, Mode=TwoWay}"--> 
      <ComboBox.ItemTemplate> 
       <DataTemplate> 
        <StackPanel Orientation="Horizontal"> 
         <TextBlock Text="{Binding Value}" /> 
        </StackPanel> 
       </DataTemplate> 
      </ComboBox.ItemTemplate> 
     </ComboBox> 

Вот мой C# код:

//NOTE: Windows 10 had issues with XAML Combobox SelectItem, so it was brought to code behind 
      DateFormatsComboBox.SelectedItem = _model.DateFormatSelected; 

Примечание: _model.DateFormatSelected является CustomKeyValuePair<string, string>

Этот подход апробирован на ОС Windows 8.1 и Windows 10 оба они отлично работают.

1

Я получал аналогичное исключение, и это было вызвано тем, что я начал манипулировать свойством привязки ItemsSource (List <>), когда процесс привязки начался. Теперь я делаю все манипуляции в коллекции temp, которые я присваиваю привязанному свойству, когда все манипуляции с коллекцией завершены.

Надеюсь, что это поможет ...

+0

Nop, вы видите мой ответ ниже, возникла проблема с Win 10, которая каким-то образом препятствует привязке. Используя код вместо XAML, разрешил этот случай. – SurenSaluka

+1

Я согласен, что с привязкой Win10 есть что-то не так.Я преодолеваю эту проблему, создавая сначала свойство коллекции viewmodel, связанное с свойством ItemsSource ComboBox, и не манипулируя непосредственно этой коллекцией, и после этого я назначаю свойство viewmodel, которое привязано к свойству SelectedItem ComboBox (это тоже важно, если Я назначаю сначала свойство, привязанное к свойству SelectedItem, я получаю исключение). На этом рабочем столе я не нарушаю шаблон MVVM, как вы делаете с вашим решением. В моем случае это прекрасно работает. –

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