除了Initial之外,绑定TextBlock文本不会更新

时间:2018-01-24 07:01:11

标签: caliburn.micro textblock

我是Caliburn.Micro的新人。

绑定TextBlock上的文字。

TextBlock的文字在启动时更改或在ViewModel上初始化,

但它不会改变被解雇的功能。

我不知道为什么一天。

我需要任何帮助。

这是我写的代码。

在视图中

<TextBlock Grid.Row="0" FontSize="72" Foreground="White" 
    HorizontalAlignment="Center"  VerticalAlignment="Center"
    x:Name="DisplayedPhoneNumber"/>

在ViewModel中

    //! Scren Binding.
    public string DisplayedPhoneNumber { get; set; } ="0103214321";

当我按下视图上的按钮时,我会调用这样的函数,

在视图中

<Border  Style="{StaticResource StyleNumberKeyBorder}">
    <Button Content="1" Style="{StaticResource StyleNumberKeyButton}"
        cal:Message.Attach="[Event Click]=[Action CmdNumberClick(1)]"/>
</Border>

在ViewModel中,CmdNumberClick函数就像这样...

    public void CmdNumberClick(string pressed_number)
    {
        DisplayedPhoneNumber = "plz change...";
    }

我检查已触发的函数,并检查DisplayedPhoneNumber是否已更改, 但TextBlck没有改变。

请帮忙。

1 个答案:

答案 0 :(得分:1)

public string DisplayedPhoneNumber { get; set; }

需要

private string _displayedPhoneNumber;
public string DisplayedPhoneNumber{
   get{ return _displayedPhoneNumber;}
   set{
      _displayedPhoneNumber = value;
      NotifyOfPropertyChanged(() => DisplayedPhoneNumber);
    }
}

关联的ViewModel必须继承PropertyChangedBase或派生INotifyPropertyChanged的基类;