如何在android MvvmCross Xamarin中设置ProgressBar的可见性

时间:2017-05-28 07:06:35

标签: c# xamarin xamarin.android mvvmcross

我正在尝试将visibility的{​​{1}}设为ProgressBar

以XML格式

GONE

ViewModel

<?xml version="1.0" encoding="utf-8"?>
<ProgressBar xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:local="http://schemas.android.com/apk/res-auto"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    local:MvxBind="Visibility Visibility(ProgressVisibility)"
    android:background="@drawable/sel_custom_progress" />

我正在设置private bool _progressVisibility; public bool ProgressVisibility { get { return _progressVisibility; } set { _progressVisibility = value; RaisePropertyChanged(() => ProgressVisibility); } }

正在发生的事情:视图仍然可见,不会被隐藏。如何解决这个问题。

1 个答案:

答案 0 :(得分:1)

您需要为Visibility创建自定义值转换器,或者您可以使用Visibility plugin

public class MyVisibilityValueConverter : MvxBaseVisibilityValueConverter<bool>
{
    protected override MvxVisibility Convert(string value, object parameter, CultureInfo culture)
    {
        return (value ==true) ? MvxVisibility.Visible : MvxVisibility.Collapsed;
    }
}

的xml:

local:MvxBind="Visibility ProgressVisibility,Converter=MyVisibility

更多信息here