簡體   English   中英

Xamarin iOS上的Mvvcross WithFallback

[英]Mvvcross WithFallback on xamarin ios

我在xamarin iOS上使用MvvmCross。 我正在使用流利的ViewModel和json上的綁定。 我想嘗試WithFallback()函數,但是當ViewModel的屬性(在這種情況下為字符串)為null或為空時,它不會執行任何操作。 我嘗試了這個:

//This works
this.BindLanguage(Header1, "Title");

/*  This works when vm.Message is not null or empty, 
/*  else print nothing, but don't call the WithFallback function 
*/
set.Bind(myLbl).For(view => view.Text).To(vm => vm.Message).WithFallback("Something");
set.Apply();

另一個問題是我如何將后備項與viewmodel或json的屬性綁定。 非常感謝!

僅當綁定失敗時才使用Fallback ,而如果屬性存在並且為null或其他則不使用。

您可以在官方文檔中閱讀有關此內容的更多信息。

對於您的情況,我建議您使用ValueConverter,類似這樣的方法將起作用:

public class MyValueConverter : MvxValueConverter<string, string>
{
    protected override string Convert(string value, Type targetType, object parameter, CultureInfo culture)
    {
        return !string.IsNullOrEmpty(value) ? value : "Something";
    }

    protected override string ConvertBack(string value, Type targetType, object parameter, CultureInfo culture)
    {
        throw new NotImplementedException();
    }
}

然后你的綁定:

set.Bind(myLbl).For(view => view.Text).To(vm => vm.Message).WithConversion<MyValueConverter>();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM