数据未更新?WPF

问题描述 投票:0回答:1

我有一个简单的实例来测试MVVM,数据在MV中成功更改,但从未显示到WPF。

XAML

    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="*"/>
            <RowDefinition Height="*"/>
        </Grid.RowDefinitions>
        <Label Content="ABC" Foreground="{Binding LJogState}" FontSize="100"/>
    </Grid>

XAML.CS

    public partial class Function : UserControl
    {
        public Function()
        {
            InitializeComponent();
            DataContext = new FunctionViewModel(this);
        }
    }

MV

    public partial class FunctionViewModel : ObservableObject
    {
        public Function obj;
        public bool a=false;
        public FunctionViewModel(Function function)
        {
            obj= function;
            Task.Run(() =>
            {
                while (true)
                {
                    DeviceStateUpdata();
                    Thread.Sleep(300);
                }
            });
        }
 
        [ObservableProperty]
        private Brush? lJogState;
 
        private void DeviceStateUpdata()
        {
                LJogState = a ? Brushes.Red : Brushes.Green;
        }
    }

enter image description here

我在 MVVM 中给其他实例发了短信,效果很好,但是简历到一个新的实例,它根本不起作用。 我在这里找不到问题,太累了。 :(

c# wpf mvvm binding .net-7.0
1个回答
0
投票

我想你正在使用

CommunityToolkit.Mvvm
?如果是,请尝试将属性
NotifyPropertyChangedRecipientsAttribute
添加到您的代码中。

[ObservableProperty]
[NotifyPropertyChangedRecipients]
private Brush? lJogState;

为您添加绑定模式 Binding:WPF 的各种绑定模式有哪些?

<Label Content="ABC" Foreground="{Binding LJogState, Mode=OneWay}" FontSize="100"/>
© www.soinside.com 2019 - 2024. All rights reserved.