Проблемы с MultiBinding конвертером
Я знаю, что это не имеет смысла посылать такое же значение дважды
я что изолировать от этого одного связывания
В преобразователе я получаю ошибку на гипсе к BOOL
значениеMultiBinding конвертер Связывание
{DependencyProperty.UnsetValue}
Но "RWnet" является BOOL
<ContentPresenter Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="2"
x:Name="fieldTemplateDetail"
Content="{Binding}"
ContentTemplateSelector="{StaticResource fieldTemplateSelector}">
<ContentPresenter.Visibility>
<MultiBinding Converter="{StaticResource visabilityConverterTwoBool}">
<Binding Path="RWnet" />
<Binding Path="RWnet" />
</MultiBinding>
</ContentPresenter.Visibility>
</ContentPresenter>
public class VisabilityConverterTwoBool : IMultiValueConverter
{
public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
{
if (values == null) return Visibility.Visible;
if (values.Length != 2) return Visibility.Visible;
try
{
if ((bool)values[0] == false) return Visibility.Collapsed;
if ((bool)values[1] == false) return Visibility.Collapsed;
}
catch (Exception ex)
{
Debug.WriteLine(ex.Message, "VisabilityConverterTwoBool");
Debug.WriteLine(values[0].ToString());
Debug.WriteLine(values[1].ToString());
}
return Visibility.Visible;
}
public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
{
return null;
}
}
Если я пошлю другую половину фактического Мульти Binding работает (неверный результат, но не ошибка)
<Binding ElementName="cbEditMode" Path="IsChecked" />
Но это работает просто отлично
RWnet это логическое значение
<ContentPresenter Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="2"
Visibility="{Binding Path=RWnet, Converter={StaticResource bvc}}"
x:Name="fieldTemplateDetail"
Content="{Binding}"
ContentTemplateSelector="{StaticResource fieldTemplateSelector}"/>
<BooleanToVisibilityConverter x:Key="bvc" />
для McGarnagle это контекст данных
<ListBox Grid.Row="4" Grid.Column="0" Grid.ColumnSpan="2" x:Name="lbCurDocFields"
ItemsSource="{Binding Source={StaticResource curDocFields}}" LostFocus="lbCurDocFields_LostFocus"
Но у этого есть контекст данных. См. Пример того, что работает внизу. ContentPresenter отображает другие свойства из одной и той же привязки. Я опубликую привязку ItemsSource. – Paparazzi
@Blam отображает свойства, но вы уверены, что он не отображал «неустановленное значение», во-первых, за долю секунды до того, как был применен DataContext? – McGarnagle
Несмотря на то, что я не понял вашего ответа, я подключил его, и это, казалось, сработало. +1 на данный момент. Если я не могу сломать, я дам ему чек. – Paparazzi