У меня есть ListView, который имеет несколько столбцов.У меня нет проблем с привязкой каждого GridViewColumn к свойству, например:
<ListView ItemsSource="{Binding MyList}">
<ListView.View>
<GridView>
<GridViewColumn DisplayMemberBinding="{Binding Name}">
<GridViewColumnHeader Content="Name"/>
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>
Проблемы начинаются, когда я пытаюсь связать GridViewColumn с двумя свойствами:
<GridViewColumn>
<GridViewColumn.DisplayMemberBinding>
<MultiBinding Converter="{StaticResource DisplayMemberConverter}">
<Binding Path="HighestScore"/>
<Binding Path="IsHighestScoreApplicable"/>
</MultiBinding>
</GridViewColumn.DisplayMemberBinding>
<GridViewColumnHeader Content"Highest_Score"/>
Конвертер, который я использую, приведен здесь:
public class DisplayMemberConverter : IMultiValueConverter
{
public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
{
int int_value = (int)values[0];
bool bool_value = (bool)values[1];
if (bool_value == true)
return int_value;
return null;
}
...
}
Я хочу добиться эффекта, когда свойство IsHighestScoreApplicable имеет значение false - в представлении списка (пустое) ничего не отображается, а когда оно равно true -показано значение HighestScore, но это не сработает - все, что я получаю, - это пустой столбец, даже когда значение IsHighestScoreApplicable равно true.Кроме того, когда я отлаживаю метод Convert (), я вижу, что выполняется оператор if:
if (bool_value == true)
, и возвращаемое значение равно int_value, но все равно ничего не отображается в представлении списка.
Что не так?
Всего наилучшего, Дейв