0 c# xaml xamarin xamarin.forms
我试图在点击或单击所选框后显示警告ListView
框.目前selectedItem
是绑定到SelectedTicket
,它触发SelectedTicket
ViewModel中的对象调用.一旦SelectedTicket
被触发,它随后执行popup.show()
该方法DisplayAlert()
的方法.该DisplayAlert()
方法得到执行,但不显示AlertBox.
==============================================
//// Xaml Page
<ListView ItemsSource="{Binding TicketList,Mode=OneWay}" RowHeight="130"
ItemTemplate="{StaticResource TicketListTileTemplate}" BackgroundColor="#d9deeb"
SelectedItem="{Binding SelectedTicket, Mode=TwoWay}" SeparatorVisibility="None">
</ListView>
Run Code Online (Sandbox Code Playgroud)
==================================================
//// ViewModal
public object SelectedTicket
{
get
{
return _SelectedTicket;
}
set
{
if (SetProperty(ref _SelectedTicket, value))
{
if ((value != null) && (value is TicketListItem))
{
popup1.Show();
SelectedTicket = null;
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
================================================== ====
////Popup.cs
async public void Show()
{
DisplayAlert("Alert", "Your have been alerted", "OK");
}
Run Code Online (Sandbox Code Playgroud)
我没有看到DisplayAlert的最常见原因之一是因为它是在屏幕上不活动的页面上调用的.
作为快速解决方法/测试,您可以做到
await Application.Current.MainPage.DisplayAlert("Alert", "Your have been alerted", "OK");
Run Code Online (Sandbox Code Playgroud)
如果这有效,我的第一个假设就得到了证实.
我总是试图让我的代码保持干净,因此从ViewModel调用肯定是一个很好的方法.通常,您的MVVM库有一些代码可以帮助显示警报.