C# WPF-MVVM-UserControl绑定

C# WPF-MVVM-UserControl绑定,c#,wpf,mvvm,user-controls,C#,Wpf,Mvvm,User Controls,我试图实现一个简单的UserControl示例,在文本框中显示当前日期时间,每秒更新四次 我创建了一个简单的用户控件: <UserControl x:Class="UC.TestUC" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

我试图实现一个简单的UserControl示例,在文本框中显示当前日期时间,每秒更新四次

我创建了一个简单的用户控件:

<UserControl x:Class="UC.TestUC"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
             xmlns:local="clr-namespace:UC"
             mc:Ignorable="d" 
             d:DesignHeight="50" d:DesignWidth="100">
    <d:UserControl.DataContext>
        <local:TestUC_VM/>
    </d:UserControl.DataContext>
    <Grid Background="Azure">
        <TextBox Text="{Binding TestString}"/>
    </Grid>
</UserControl>
主窗口XAML:

<Window x:Class="UC.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:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:UC"
        mc:Ignorable="d"
        Title="MainWindow" Height="100" Width="200">
    <Window.DataContext>
        <local:MainWindow_VM/>
    </Window.DataContext>
    <Window.Resources>
        <local:TestUC_VM x:Key="TestUC_VM"/>
    </Window.Resources>
    <Grid>
        <local:TestUC DataContext="{StaticResource TestUC_VM}"/>
    </Grid>
</Window>
即使我通过调试器看到我正在通过TestString setter,主窗口也不会更新。 我很确定我在主窗口中设置UC的DataContext时遗漏了一些琐碎的东西,但经过几个小时的浏览和思考,我一直无法找到什么

感谢您的帮助。

表达

<local:TestUC DataContext="{StaticResource TestUC_VM}"/>

<local:TestUC DataContext="{Binding UcVm}"/>

在setter中尝试以下操作:
OnPropertyChanged(nameof(TestString))
@praty:没有任何变化。请注意,UserControl永远不应该像在UserControl的XAML中那样显式设置自己的DataContext。您应该删除它。@grandangelo也编辑它:
除此之外,MainWindow\u VM的TestUC\u VM成员与您分配UCs DataContext的MainWindow中的TestUC\u VM资源不同。
<local:TestUC DataContext="{StaticResource TestUC_VM}"/>
public TestUC_VM UcVm { get; } = new TestUC_VM();
<local:TestUC DataContext="{Binding UcVm}"/>
UcVm.TestString = ...