我有一個MultiBinding
轉換器,它決定了控件的可見性,具體取決於我的Binding字段是否都計算爲true。如果由於某種原因它不能達到這兩種布爾屬性,我想將它們設置爲true。例如:在MultiBinding中處理綁定的布爾故障預置值
,我目前擁有的代碼是:
<MultiBinding Converter="{StaticResource AndToVisibilityConverter1}" FallbackValue="Visible">
<Binding Path="IsConnected" FallbackValue="true" />
<Binding Path="CurrentUser.IsConsumerOnlyAgent" Converter="{StaticResource InvertedBooleanConverter1}" FallbackValue="True" />
</MultiBinding>
代碼運行正常,但是我得到了我的IDE的輸出指示錯誤信息:
System.Windows.Data Error: 11 : Fallback value 'True' (type 'String') cannot be converted for use in 'Visibility' (type 'Visibility'). BindingExpression:Path=IsConnected; DataItem=null; target element is 'StackPanel' (Name='');
哪個我已經指出這個轉換器,並驗證它是XAML錯誤的地方。對不起,這裏有無知,但有沒有辦法可以設置FallbackValue到每個這些綁定評估爲「真」失敗後獲得設置路徑?在此先感謝
更新:
下面是我的能見度轉換器(我用這幾個地方在我的應用程序,只想補充後備值)的代碼:
internal class AndToVisibilityConverter : IMultiValueConverter
{
public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
{
if (values == null)
return Visibility.Collapsed;
foreach (var value in values)
{
if (value == null || !(value is bool))
return Visibility.Collapsed;
if (!((bool) value))
return Visibility.Collapsed;
}
return Visibility.Visible;
}
public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
你能包含的代碼轉換器? – slugster
隨着轉換器 –