0
我正在使用MVVMCross,並且與MvxDialogFragment綁定有問題。 我有一個基礎服務,在Core PCL項目中解決,在iOS和Android項目中添加自定義服務實現,派生自基本服務類。Android訪問服務MvxDialogFragment視圖
在Android的服務,我構建和顯示MvxDialogFragment例如:
var top = (MvxFragmentActivity)Mvx.Resolve<IMvxAndroidCurrentTopActivity>().Activity;
if (top == null)
{
throw new MvxException("Cannot get current top activity");
}
var dlg = new AlertDialog.Builder(top);
dlg.Create().Show();
dialog = new MyDialog
{
Cancelable = false
};
dialog.Show(top.SupportFragmentManager, "");
,我有簡單的對話框佈局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/test_click_button"
android:text="Test"
app:MvxBind="Click TestClickCommand" />
</LinearLayout>
所以我的目標是進入電影從dialogFragment,這被實例化的基礎服務命令從服務。我怎樣才能做到這一點?
作爲一種替代方案,我想處理我的按鈕單擊服務,但無法找到一種方法來執行此操作,因爲我的View,ViewModel或Dialog屬性爲空。
如何處理點擊服務或實現自我約束?
如果你想從服務訪問視圖,你基本上是做錯了。 Mvvm模式不是爲了做到這一點。你也會說「我不想把我的服務命令放在任何viewModel中」。命令不在服務中,而是在ViewModels中。 ViewModels調用服務方法。也許我只是誤解了整個事情... – xleon
感謝您的回覆!我編輯了這個問題,主要目標是:如何將dialogfragment按鈕綁定到服務命令 – Fragment