1
结合我得到了以下菜单项动态的菜单项
<MenuItem
Header="{Binding ChangeSetCache.History">
<MenuItem.ToolTip>
<TextBlock
Text="{Binding ChangeSetCache.History}" />
</MenuItem.ToolTip>
</MenuItem>
ChangeSetCache级看起来是这样的:
public class ChangeSetCache : BaseModel
{
private ObservableCollection<ChangeSetModel> cache { get; set; } = new ObservableCollection<ChangeSetModel>();
public string History
{
get { return cache.Count.ToString(); }
set { }
}
}
(INotifyPropertyChanged的是在basemodel实现)
为什么该工具提示更新绑定和menuitem标题不?如何根据需要更新menuitem标题?
如果我设计了菜单项,工具提示类似下面的提示还没有更新:
<MenuItem
Header="{Binding ChangeSetCache.History}"
ToolTip="{Binding ChangeSetCache.History}" />
作为一个说明,设置'UpdateSourceTrigger = PropertyChanged'在这里毫无意义。它只在TwoWay或OneWayToSource绑定中有效。这就是说,你的财产的制定者是空的。你如何期待一个PropertyChanged事件被解雇? – Clemens
谢谢你的提示。当然,我只需要单向绑定,不需要更新视图中的源代码。我会更新我的问题。 – Chpo7234
您何时通知或致电OnPropertyChanged(“历史”)?如果您不打电话,UI将不知道该物业的新价值。 – XAMlMAX