我正在使用MaterialsDesigninXAML。当尝试使用MVVM方法的小吃店时,我遇到了阻止Snackbar显示消息的问题。我已经包含了ViewModel和相关的XAML代码。我查看了MaterialDesign Snackbar Wiki,但无法看到我错过的内容。
MainScreenViewModel
private SnackbarMessageQueue m_messagequeue;
public MainScreenViewModel()
{
MESSAGEQUEUE = new SnackbarMessageQueue(TimeSpan.FromMilliseconds(8000));
}
public SnackbarMessageQueue MESSAGEQUEUE { get { return m_messagequeue; } set {m_messagequeue = value; OnPropertyChanged("MESSAGEQUEUE"); } }
public void On_message_click()
{
Task.Factory.StartNew(() => MESSAGEQUEUE.Enqueue("Wow, easy!"));
}
}
MainScreen.xaml
<Button Content="message" Style="{StaticResource MaterialDesignRaisedDarkButton}" >
<i:Interaction.Triggers>
<i:EventTrigger EventName="Click">
<ei:CallMethodAction TargetObject="{Binding}"
MethodName="On_message_click"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</Button>
<materialDesign:Snackbar MessageQueue="{Binding MESSAGEQUEUE}" />
但是在跑步时我注意到Dispatcher无法找到小吃店的问题。我想知道为什么会这样,或者我是否遗漏了一些东西,以便在小吃店上显示消息。
//find a target
var snackbar = await FindSnackbar(exemplar.Dispatcher);
//show message
if (snackbar != null){...}