簡體   English   中英

WPF ContentControl DataTemplate不更新值

[英]WPF ContentControl DataTemplate not updating value

我不知道這里發生了什么。 當我直接綁定到TextBox ,可以編輯該值,但我想在ContentControl綁定。

為什么ContentControl不更新ViewModel?

<Window x:Class="WTFWPF.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:local="clr-namespace:WTFWPF"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:sys="clr-namespace:System;assembly=mscorlib"
        Title="MainWindow"
        Width="525"
        Height="350"
        DataContext="{DynamicResource ViewModel}"
        mc:Ignorable="d">
    <Window.Resources>
        <local:MainViewModel x:Key="ViewModel" />
        <DataTemplate DataType="{x:Type sys:Int32}">
            <TextBox Text="{Binding Path=., UpdateSourceTrigger=PropertyChanged}" />
        </DataTemplate>
    </Window.Resources>
    <StackPanel>
        <TextBlock Margin="5" Text="{Binding Number}" />
        <TextBox Margin="5" Text="{Binding Number, UpdateSourceTrigger=PropertyChanged}" />
        <ContentControl Margin="5" Content="{Binding Number}" />
    </StackPanel>
</Window>

這似乎工作正常,不知道為什么你的版本不起作用。

<Window.Resources>
    <wpfApplication1:MainViewModel x:Key="ViewModel" />
        <DataTemplate x:Key="NumberTemplate">
            <TextBox Text="{Binding Path=Number, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
        </DataTemplate>
</Window.Resources>
<StackPanel>
    <TextBlock Margin="5" Text="{Binding Number}" />
    <TextBox Margin="5" Text="{Binding Number, UpdateSourceTrigger=PropertyChanged}" />
    <ContentControl Margin="5"
                    Content="{Binding}"
                    ContentTemplate="{StaticResource NumberTemplate}" />
</StackPanel>

使其工作的另一種方法是更改​​模板中的綁定:

<TextBox Text="{Binding Path=DataContext.Number,      
               RelativeSource={RelativeSource AncestorType=ContentControl}, UpdateSourceTrigger=PropertyChanged}" />

不幸的是我無法解釋為什么你的版本不起作用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM