usercontrol如果不指定绑定,默认的是uc中的VM,需要指定要绑定的page的vm。
如:
这句代码表示绑定到父page的datacontext上。如果直接写,{Binding IsShowTimeUI},肯定是不起作用的。
应该主要是DataContext不一致吧。绑定到的属性是在主页面的vm里定义还是uc的vm里呢?
外面包一个层
你可以用转换器,设置一个变量,多个状态,根据不同状态选择显示不同界面。
比如 变量1{A,B,C}
public class AccountStatusToVisibility : IValueConverter
{
#region "IValueConverter Members"
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if (value == null)
{
return Visibility.Collapsed;
}
if (parameter != null)
{
var p = parameter.ToString();
if (p.Contains(","))
return p.Split(',').Contains(value.ToString(), StringComparer.OrdinalIgnoreCase) ? Visibility.Visible : Visibility.Collapsed;
return string.Equals(p, value.ToString(), StringComparison.OrdinalIgnoreCase) ? Visibility.Visible : Visibility.Collapsed;
}
return Visibility.Collapsed;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
#endregion
}