Xaml 经典绑定可以工作,但编译时绑定只能工作一次

Xaml 经典绑定可以工作,但编译时绑定只能工作一次,xaml,mvvm,uwp,mvvm-light,uwp-xaml,Xaml,Mvvm,Uwp,Mvvm Light,Uwp Xaml,我的代码有一个错误,但我看不出来。所以我有一个FlipView,它有多个数据模板。现在我希望视图在vm中的PropertyChange上更新,所以我使用数据绑定 但是如果我使用编译时绑定,那么绑定的行为只会被设置为OneTime——即使模式被设置为单向或双向。所以我认为OnPropertyChanged事件可能有问题,但我什么也找不到。因此,我尝试切换到经典绑定-,它可以工作。所以我的问题是我在x:Bind上做错了什么 这里是XAML的简化版本: <Page [...] Da

我的代码有一个错误,但我看不出来。所以我有一个FlipView,它有多个数据模板。现在我希望视图在vm中的PropertyChange上更新,所以我使用数据绑定

但是如果我使用编译时绑定,那么绑定的行为只会被设置为OneTime——即使模式被设置为单向或双向。所以我认为OnPropertyChanged事件可能有问题,但我什么也找不到。因此,我尝试切换到经典绑定-,它可以工作。所以我的问题是我在x:Bind上做错了什么

这里是XAML的简化版本:

<Page
   [...]
    DataContext="{Binding Source={StaticResource Locator}, Path=GalleryViewModelInstance}">

    <Page.Resources>
        [...]

        <DataTemplate x:Name="FlipImageTemplate"  x:DataType="gallery:IMediaAttachmentViewModel">
            <Image Stretch="UniformToFill"HorizontalAlignment="Center" >
                <Image.Source>
                    <BitmapImage UriSource="{Binding AttachmentViewModel.RelativeAttachmentPath, Mode=OneWay, Converter={StaticResource UriConverter}}" />
                </Image.Source>
            </Image>
        </DataTemplate>

        <DataTemplate x:Name="FlipVideoAudioTemplate" x:DataType="gallery:IMediaAttachmentViewModel">
            [...]
        </DataTemplate>

        <DataTemplate x:Name="FlipPDFTemplate"  x:DataType="gallery:IMediaAttachmentViewModel" >
            [...]
        </DataTemplate>

        <DataTemplate x:Name="FlipOtherTemplate" >
            [...]
        </DataTemplate>

        <local:BigPictureDataTemplateSelector x:Key="BigPictureDataTemplateSelector" 
                                              ImageTemplate="{StaticResource FlipImageTemplate}"
                                              VideoAndAudioTemplate="{StaticResource FlipVideoAudioTemplate}"
                                              PdfTemplate="{StaticResource FlipPDFTemplate}"
                                              OtherTemplate="{StaticResource FlipOtherTemplate}"/>
    </Page.Resources>

    <RelativePanel x:Name="relativePanel" Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"
                   Padding="40,40,40,40">

            <FlipView x:Name="FlipView"  
                SelectedIndex="{x:Bind ViewModel.FilpViewIndex, Mode=TwoWay}"
                ItemsSource="{x:Bind ViewModel.GalleryDataViewModels, Mode=TwoWay}"
                ItemTemplateSelector="{StaticResource BigPictureDataTemplateSelector}">
            </FlipView>
       [...]
    </RelativePanel>
</Page>

[...]
[...]
[...]
[...]
[...]
因此,如果我将绑定更改为x:bind,它不会更新视图(因为模式将设置为OneTime)



您试过调试生成的编译时绑定吗?其余的代码呢?是否更改ViewModel的对象实例或任何绑定属性?是否尝试调试生成的编译时绑定?其余代码如何?是否更改ViewModel的对象实例或任何绑定属性?
 <BitmapImage UriSource="{x:Bind AttachmentViewModel.RelativeAttachmentPath, Mode=OneWay, Converter={StaticResource UriConverter}}" />