UWP - тег заставляет приложение cra sh в InitializeComponent () - PullRequest
0 голосов
/ 09 июля 2020

Я решил проблему, но для лучшего понимания задаю этот вопрос. В режиме отладки следующее приложение давало сбой при вызове InitializeComponent(); и отправляло меня на последнюю строку файла App.g.i.cs, как показано ниже. Потратив некоторое время на то, чтобы понять, почему это происходит, я решил удалить весь блок <Interactivity:Interaction.Behaviors>.....<Interactivity:Interaction.Behaviors> из файла MainPage.xaml. И теперь компилируется нормально.

Вопрос : Почему вышеуказанный блок вызывал ошибку sh?

MainPage.xaml :

<Page
   x:Class="UWP_AccessFilesTrainingCrse.MainPage"
   xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
   .....
   Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">

    <Interactivity:Interaction.Behaviors>
        <providers:InteractiveProviderBehavior x:Name="MsalProvider" />
    </Interactivity:Interaction.Behaviors>

<Grid>
  <Button Content="Button" Click="Button_Click"/>
</Grid>

</Page>

MainPage.xaml.cs :

using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
    
public sealed partial class MainPage : Page
{
    public MainPage()
    {
        this.InitializeComponent();
    }
}

App.gics :

............
..........
#if DEBUG && !DISABLE_XAML_GENERATED_BREAK_ON_UNHANDLED_EXCEPTION
            UnhandledException += (sender, e) =>
            {
                if (global::System.Diagnostics.Debugger.IsAttached) global::System.Diagnostics.Debugger.Break();
            };
#endif

1 Ответ

0 голосов
/ 09 июля 2020

Возможно, вы пропустили добавление clientId для класса InteractiveProviderBehavior. Для тестирования это могло хорошо работать на моей стороне. Используется следующий код.

<Page
    x:Class="EncryptFile.MainPage"

    ......
    xmlns:Interactivity="using:Microsoft.Xaml.Interactivity"
    xmlns:providers="using:Microsoft.Toolkit.Graph.Providers"
    Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"
    mc:Ignorable="d"
    >

    <Interactivity:Interaction.Behaviors>
        <providers:InteractiveProviderBehavior x:Name="Provider" ClientId="Your_ClientId" />
    </Interactivity:Interaction.Behaviors>

    <Grid>
        <Button Click="Button_Click" Content="Click" />
    </Grid>
</Page>

Для получения более подробной информации обратитесь к этому начало работы .

...