MvxDialogFragmentを使用して、アクティビティからデータバインドダイアログを表示しようとしています。私のダイアログViewModelには、次のとおりです。次のようにMvxDialogFragmentを表示する簡単な方法は何ですか?
public class ContainerDialogViewModel : MvxViewModel
{
public string ShipperName;
public void Init(string Name)
{
ShipperName = Name;
LoadData();
}
public void LoadData()
{
Survey = SurveyDataSource.CurrSurvey;
}
private ShipmentSurvey _Survey;
public ShipmentSurvey Survey
{
get
{
return _Survey;
}
set
{
_Survey = value;
RaisePropertyChanged(() => Survey);
RaisePropertyChanged(() => Containers);
}
}
public List<ShipmentSurveyContainer> Containers
{
get
{
if (Survey == null)
return new List<ShipmentSurveyContainer>();
else
return Survey.SurveyContainers.ToList();
}
}
}
MvxDialogFragmentがコード化されている:私の活動で
public class ContainerDialog : MvxDialogFragment<ContainerDialogViewModel>
{
public override Dialog OnCreateDialog(Bundle savedState)
{
base.EnsureBindingContextSet(savedState);
this.BindingInflate(Resource.Layout.ContainerDialog, null);
return base.OnCreateDialog(savedState);
}
}
を、私はダイアログを起動する最も簡単な方法を把握しようとしています。ここで私が試したものです:
public class SurveyView : MvxActivity
{
public void ShowContainerDialog()
{
ContainerDialogViewModel vm = new ViewModels.ContainerDialogViewModel();
vm.Init("Test Name");
var dialogFragment = new ContainerDialog()
{
DataContext = vm
};
dialogFragment.Show(FragmentManager, "Containers");
}
}
私は、ビューモデルを作成するための私の方法は異例であるかなり確信しているが、私はそれを行うための別の方法を知りません。最大の問題は、FragmentManagerが間違ったバージョンにキャストされることです。 ShowはAndroid.Support.V4.App.FragmentManagerを探しており、公開されているFragmentManagerはAndroid.App.FragmentManagerです。私はMvxActivityをMvxFragmentActivityに変更しようとしましたが、これは役に立たないようです。誰かが私を正しい方向に向けることができますか?
Dialogsをサポートする新しいプレゼンターが5.1.0に予定されています – Martijn00
@ Martijn00今すぐ動作させる方法はありますか?カスタムプレゼンターなどと同じように?私は、MvxDialogFragmentの実例を高値と低値で検索し、見つけられませんでした。 –
私はこれに取り組んでいます:https://github.com/MvvmCross/MvvmCross/issues/1934 – Martijn00