- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在关注 Master-Detail Page 上的教程
我有一个问题:
部分解决方案需要一个项目类,如下所示:
public class MasterPageItem
{
public string Title { get; set; }
public string IconSource { get; set; }
public Type TargetType { get; set; }
}
<ListView.ItemsSource>
<x:Array Type="{x:Type local:MasterPageItem}">
<local:MasterPageItem Title="Radio" IconSource="hamburger.png" TargetType="{x:Type local:RadioPage}" />
<local:MasterPageItem Title="Item 1" TargetType="{x:Type temp:ContactsPage}" />
<local:MasterPageItem Title="Item 2" TargetType="{x:Type temp:TodoListPage}" />
<local:MasterPageItem Title="Item 3" TargetType="{x:Type temp:ReminderPage}" />
<local:MasterPageItem Title="File 4" TargetType="{}Foodaddy" />
</x:Array>
</ListView.ItemsSource>
最佳答案
If you notice in this piece of code你会看到 OnItemSelected
方法正在处理事件并期待 MasterPageItem
:
void OnItemSelected (object sender, SelectedItemChangedEventArgs e)
{
var item = e.SelectedItem as MasterPageItem;
if (item != null) {
Detail = new NavigationPage ((Page)Activator.CreateInstance (item.TargetType));
masterPage.ListView.SelectedItem = null;
IsPresented = false;
}
}
MVVM
的方式)。
MasterPageItem
并在
MasterDetailMenuViewModel
中处理其属性,例如,并根据您的需要将处理修改为更准确的内容。
public class AmazingMenuItem
{
public string ItemName { get; set; }
public string ItemIconSource { get; set; }
public EnumAction ActionType { get; set; }
public object ActionParameter { get; set; }
}
public enum EnumAction
{
OpenPage = 0,
ShowMessage = 1,
PopToRoot = 2
/* ... and so on */
}
public class MenuViewModel : SomeINotifyPropertyChangedImplementation
{
public Command ItemSelectedCommand { get; }
/*
Other properties
*/
public MenuViewModel()
{
ItemSelectedCommand = new Command<AmazingMenuItem>(ExecuteItemSelected);
}
private void ExecuteItemSelected(AmazingMenuItem item)
{
if(item != null)
{
switch(item.ActionType)
{
case EnumAction.OpenPage:
var detail = (App.Current.MainPage as MasterDetailPage).Detail;
if(detail is NavigationPage)
detail.PushAsync((Page)Activator.CreateInstance(item.ActionParameter.GetType()));
else
(App.Current.MainPage as MasterDetailPage).Detail = new NavigationPage((Page)Activator.CreateInstance(item.ActionParameter.GetType()));
break;
case EnumAction.ShowMessage:
App.Current.MainPage.DisplayAlert(item.ActionParameter.ToString(), "Ok", "Cancel");
break;
case EnumAction.PopToRoot:
(App.Current.MainPage as MasterDetailPage)?.Detail.PopToRootAsync();
break;
}
}
}
}
关于xamarin - MasterDetailPage : Accepting something other than a Page,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50570803/
如何删除汉堡包菜单(用于打开/关闭抽屉)但如果有堆栈则保留导航栏和后退图标。我正在努力寻找解决方案。 这样做会完全移除导航栏 NavigationPage.HasNavigationBar="fals
当我尝试将(MasterDetailPage 的)Master 的背景颜色设置为透明时,它保持白色。 基本上我想看到的是,详细信息页面的颜色通过 Master 显示。 例如(如果以上为真,那么此 Ma
我正在尝试创建一个 MasterDetailPage,但我不太确定我是否做对了,但是抽屉/母版看起来很难看。例如,导航栏颜色未显示,...: 关于如何改进它的任何想法/提示? 最佳答案 MasterD
我正在关注 Master-Detail Page 上的教程 我有一个问题: 部分解决方案需要一个项目类,如下所示: public class MasterPageItem { public s
我正在尝试在 mvvm 世界中走自己的路, 我没有起诉任何框架,只是我看到的 http://blog.roboblob.com/tag/viewmodellocator/ 我真的很喜欢那篇文章,而且效
我需要在 xamarin forms 3.0 中隐藏导航栏。 我尝试了这个,但不起作用: Hide Navigation Bar on MasterDetailPage 我想隐藏导航栏来创建自定义栏,
在 FreshMVVM 中实现主从页面的正确方法是什么: 检查了不同的地方,但找不到合适的实现方式,这是我第一次使用 MVVM 作为一个整体来处理 xamarin 表单应用程序。 GitHub 上是否
我正在尝试使用 MvvmCross 开发 Xamarin.Forms 应用程序,我想使用 Hamburguer Menu (MasterDetailPage),但我不知道该怎么做。我尝试了不同的方法,
我正在为主详细信息页面编写一个自定义渲染器。我在主要 Activity 中得到了一个无效的转换异常。 public class MainActivity : global::Xamarin.Form
更新:显然这是故意的,参见here . 编辑:事实证明,问题是工具栏没有添加到 MasterDetailPage,而是添加到我设置为详细信息页面的页面(在我的例子中是 NavigationPage )
我有一个针对 Android、IOS 和 UWP 的 Xamarin Forms 项目。在我的 Xamarin.Forms 项目 App.cs 中,我已将 MainPage 设置为 MasterDet
我的项目有问题,我正在使用 MasterDetailPage 和一个简单的 ListView 并使用本地命名空间通过 调用他内部的另一个页面>ListView 也有 THIS结果,问题是工具栏和 Li
请看附件图片: Highlighted top bar in Android add 在 Xamarin Forms 中使用 MasterDetailPage 时,如何在顶部栏(靠近汉堡包菜单/标题)
我的 Xamarin.Forms 应用的主页包含一个如下所示的 MasterDetailPage: ... 当我尝试在激活
所以我有一个启动屏幕和一个登录屏幕,用户登录后,他会看到一个MasterDetailPage,并且有一个注销选项,我想要实现的是清除masterdetail导航并转到登录页面使用 Prism.Form
我不确定为什么会收到此错误我已经阅读了很多有关此错误的信息,听起来它与未设置 xaml 文件中的标题有关。我所有的页面都有标题集。错误来自 app.xaml.cs MainPage= new Main
我在适用于 ios 和 android 的 Xamarin 表单上使用 MasterDetailPage for app。 但是 MasterDetailPage 菜单的宽度太大,我想调整它。 如何在
我正在尝试向现有的 Xamarin 应用程序添加一个简单的“主详细信息”页面。这是 MasterDetailPage 声明
我目前正在学习 Xamarin Forms,但我遇到了一个小图形问题。我必须将所有按钮的高度调整为 100%(基于导航栏)。实际上,Xamarin 在底部为汉堡包图标切割了一些像素,并且“三点”图标未
我有一个我正在尝试创建的 map View ,但它比 map 实现更高级由 Xamarin.Forms 提供。我想知道是否有用于嵌入 native View 的模式主详细信息页面。 在示例图像中,顶部
我是一名优秀的程序员,十分优秀!