MVVM в универсальной платформе Windows. - PullRequest
0 голосов
/ 18 сентября 2019

Хорошо, поэтому я использую Visual Studio и UWP.Я создал WeatheVM для привязки к своей странице в качестве ресурса.Каждый раз, когда я создаю Ресурс, он говорит: «Не могу создать WeatheVM». Я очень разочарован, я не понимаю, почему не позволяет мне, мне нужно это для доступа к моим свойствам.

<Page x:Class="uwpMVVM.View.MainWindow"
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
      xmlns:local="using:uwpMVVM.View"
      xmlns:vm="using:uwpMVVM.ViewModel"
      xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
      xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
      mc:Ignorable="d"
      Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">

    <Page.Resources>
        <vm:WeatherVM x:Key="vm" />
    </Page.Resources>

    <Grid>

        <AutoSuggestBox x:Name="box"
                        Grid.Column="1"
                        Margin="40"
                        QueryIcon="Find"
                        />
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="53*" />
            <ColumnDefinition Width="247*" />
        </Grid.ColumnDefinitions>

    </Grid>
</Page>

кстатимоя ВМ является публичным классом

1 Ответ

0 голосов
/ 19 сентября 2019

В коде, который вы дали, я увидел, что вы создали экземпляр WeathVM в Page.Resources, но не указали на него.

Вы можете установить DataContext Grid на vm, чтобы вы могли импортироватьресурсы, которые вы создали.

<Grid DataContext="{StaticResource vm}">
    <!-- Other code -->
</Grid>

Предположим, у вас есть свойство Temp для отображения.После настройки DataContext вы можете связать его следующим образом.

<Grid DataContext="{StaticResource vm}">
    <TextBlock Text={Binding Temp} />
</Grid>

Это полный пример MVVM , вы можете изменить его со ссылкой на него.

BestС уважением.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...