Как активировать кнопку при выборе двух элементов ListView? WPF

208
16 января 2019, 02:50

Есть ListView и кнопка для сравнения двух элементов, которая должна быть активна, когда выбраны два элемента. Есть такой код XAML:

<Button Command="{Binding CompareSnapshots}"
    CommandParameter="{Binding SelectedItems, ElementName=SnapshotsListView}"
    IsEnabled="{Binding SelectedItems, ElementName=SnapshotsListView, Converter={StaticResource selectedItemCollectionToBoolConverter}}"
    Content="Compare"
    HorizontalAlignment="Stretch"
    VerticalAlignment="Top"
    Margin="0,10,0,0"
    Width="130"
    Height="60"
    Grid.Column="1"/>

Converter:

class SelectedItemCollectionToBoolConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        if (((IList<object>)value).Count == 2)
            return true;
        else
            return false;
    }
    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
        throw new NotImplementedException();
    }
}

Проблема в том, что биндинг отрабатывает только при запуске приложения. Как исправить?

Answer 1

XAML:

<Button Command="{Binding CompareSnapshots}"
    CommandParameter="{Binding SelectedItems, ElementName=SnapshotsListView}"
    IsEnabled="{Binding SelectedItems.Count, ElementName=SnapshotsListView, Converter={StaticResource selectedItemCollectionToBoolConverter}}"
    Content="Compare"
    HorizontalAlignment="Stretch"
    VerticalAlignment="Top"
    Margin="0,10,0,0"
    Width="130"
    Height="60"
    Grid.Column="1"/>

Converter:

class SelectedItemCollectionToBoolConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        return (int)value == 2;
    }
    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
        throw new NotImplementedException();
    }
}
READ ALSO
C# WPF Prism PopupWindowAction События окна

C# WPF Prism PopupWindowAction События окна

Хочу сделать свою "non client area" в popup окнеКак и где мне можно работать с code-behind PopupWindowAction окна? Можно ли реагировать на события PopupWindowAction окна...

134
Объясните код c#

Объясните код c#

Вот кодЧто делает, понять не могу

178
Ошибка PHP Fatal error: require(): Failed opening required на php7.0 yii2

Ошибка PHP Fatal error: require(): Failed opening required на php7.0 yii2

На хостинге работало все нормально,как только перенес на vps ошибкалоги тут -

168
input[date] контроль

input[date] контроль

как сделать в input type=date так, что бы допустим щас 2018 год и в этом инпуте можно было выбрать дату только до 2018 года, если 2019 до 2019 , думаю смысл...

163