首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Wpf:文本块在更改后不会更新

Wpf:文本块在更改后不会更新
EN

Stack Overflow用户
提问于 2016-12-08 13:34:51
回答 1查看 1.7K关注 0票数 0

我有使用MVVM的Wpf应用程序,代码如下所示:

XAML:

代码语言:javascript
运行
复制
<StackPanel Orientation="Vertical">
    <TextBox Text="{Binding DataFolder}" TextWrapping="Wrap"/>
    <Button Content="Convert" Padding="8" Command="{Binding ConvertCommand}" IsEnabled="True" MinWidth="220"/>
    <TextBlock Text="{Binding DoneMessage, UpdateSourceTrigger=PropertyChanged}"></TextBlock>
</StackPanel>

ViewModel:

代码语言:javascript
运行
复制
public class ConverterViewModel : NotificationObject
{
    public string DataFolder { get; set; }
    public string DoneMessage { get; set; }
    public DelegateCommand ConvertCommand { get; set; }

    private readonly List<BaseConverter> _converters = new List<BaseConverter>
    {
        new VisualCheckEventConverter()
    };

    public ConverterViewModel()
    {
        ConvertCommand = new DelegateCommand(VisualCheckEventConvertCommandExecute);
        DataFolder = ConfigurationManager.AppSettings["InputFolder"];
        DoneMessage = "Not done yet.";
    }

    private void VisualCheckEventConvertCommandExecute()
    {
        foreach (var c in _converters)
            c.Convert(DataFolder);
        DoneMessage = "Done!";
    }
}

当我运行应用程序时,消息“尚未完成”。显示,但在执行命令后,文本块的文本不会更新为“完成!”。

怎么让它起作用?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-08 13:44:13

如果希望通知视图,则需要在notifypropertychanged属性设置器中使用DoneMessage

另外,AFAIK没有必要将UpdateSourceTrigger=PropertyChanged放在TextBlock上,因为它是只读的。如果您希望在更改文本时通知您的TextBox,则应该将其放在您的ViewModel上。

应该是这样的:

代码语言:javascript
运行
复制
    private string _doneMessage;

    public string DoneMessage
    {
        get { return _doneMessage; }
        set
        {
            _doneMessage = value;
            //the method name may vary based on the implementation of INotifyPropertyChanged
            NotifyPropertyChanged("DoneMessage");
        }
    }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41040788

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档