从ViewModel更改标签内容道具

时间:2019-01-02 22:30:27

标签: c# wpf mvvm binding

我的表单中包含LabelSlider

我试图通过从 ViewModel 属性获取价值来更改Label.Content。 另外,我使用Slider ViewModel 中更新了该值,但是当我更改滑块值时,属性会更新,但在Label上看不到更新后的值。 Content具有该值,该值在运行程序之后。

这是xaml代码:

<Slider 
    Value="{Binding MathLevel, Mode=TwoWay}"
    Width="200" />
<Label
    Content="{Binding MathLevel}"
    HorizontalAlignment="Left"
    Margin="157,250,0,0"
    VerticalAlignment="Top" />

ViewModel中的属性

public int MathLevel
{
    get => user.Skills [0].Level;
    set {
        user.Skills [0].Level = value;
        OnPropertyChanged("Math skill level");
    }
}

这里是User.cs

 class User
 {
     public List<Skill> Skills {get;set;} = new List<Skill>();
 }

我只想将Content上的Label更改为属性MathSkill的值

1 个答案:

答案 0 :(得分:6)

OnPropertyChanged()调用似乎有问题。它应该具有要在引号中更新的属性的名称

OldHuman