set
中的字符串触发方法,我已经读过使用viewmodel
基本上是我做这个的最佳选择。
我不明白,因为我几乎找不到任何文档/示例代码来帮助我实现这个目标
每当我点击MvxMessenger
中的按钮时,我也希望它在FilterViewModel
中使用SearchHistoryViewModel
中的字符串触发方法。
基本上,如果FilterViewModel
代码甚至是正确的,我该如何正确发送/发布此消息?
FilterViewModel
SearchHistoryViewModel
SearchHistoryViewModel
public class SearchHistoryFilterViewModel : MvxViewModel
{
private string _name;
public string Name
{
get { return _name; }
set { _name = value;
RaisePropertyChanged(() => Name);
}
}
public SearchHistoryFilterViewModel(IMvxMessenger messenger)
{
//_token = messenger.Subscribe
//_messenger = messenger;
}
public IMvxCommand FilterCommand
{
get
{
return new MvxCommand(FilterByName);
}
}
public void FilterByName()
{
//Whenever this method is triggered, send a message with the Name in it
SearchFilterMessage message = new SearchFilterMessage(this, Name);
//Send message
... ? /////////////////////
}`
答案 0 :(得分:0)
好吧,所以我对如何声明信使本身感到困惑,并且在没有标记的情况下使用它,而不是在构造函数中使用它。解决方案很容易:( 基本上宣布另一个ImvxMessenger并通过注入设置它,然后调用那个以另一种方法发布它
private IMvxMessenger _messenger;
public SearchHistoryFilterViewModel(IMvxMessenger messenger)
{
//_token = messenger.Subscribe...
//messenger.Publish<SearchFilterMessage>(FilterByName());
_messenger = messenger;
}
public void FilterByName()
{
Debug.WriteLine(Name);
SearchFilterMessage message = new SearchFilterMessage(this, Name);
//Send message
_messenger.Publish<SearchFilterMessage>(message);
}