Как связать обратные булево свойства в WPF?

Если я правильно интерпретирую ваш вопрос, вы спрашиваете, как настроить таргетинг на определенные элементы многомерного массива:

<?php
$data =
[
    [
        'name' => 'person1',
        'notes' => [1,2,3]
    ],
    [
        'name' => 'person2',
        'notes' => [4,5,6]
    ],
    [
        'name' => 'person3',
        'notes' => [7,8,9]
    ]
];

echo $data[0]['notes'][0], "\n"; // First note of first person
echo $data[1]['notes'][1], "\n"; // Second note of second person
echo $data[2]['notes'][2], "\n"; // Third note of third person

Вывод:

1
5
9
354
задан Tim Pohlmann 7 October 2015 в 21:53
поделиться

3 ответа

Вы можете использовать ValueConverter, который инвертирует для вас свойство типа bool.

XAML:

IsEnabled="{Binding Path=IsReadOnly, Converter={StaticResource InverseBooleanConverter}}"

Converter:

[ValueConversion(typeof(bool), typeof(bool))]
    public class InverseBooleanConverter: IValueConverter
    {
        #region IValueConverter Members

        public object Convert(object value, Type targetType, object parameter,
            System.Globalization.CultureInfo culture)
        {
            if (targetType != typeof(bool))
                throw new InvalidOperationException("The target must be a boolean");

            return !(bool)value;
        }

        public object ConvertBack(object value, Type targetType, object parameter,
            System.Globalization.CultureInfo culture)
        {
            throw new NotSupportedException();
        }

        #endregion
    }
460
ответ дан 23 November 2019 в 00:23
поделиться

Я использую аналогичный подход как @Ofaim

private bool jobSaved = true;
private bool JobSaved    
{ 
    get => jobSaved; 
    set
    {
        if (value == jobSaved) return;
        jobSaved = value;

        OnPropertyChanged();
        OnPropertyChanged("EnableSaveButton");
    }
}

public bool EnableSaveButton => !jobSaved;
0
ответ дан 23 November 2019 в 00:23
поделиться

Рассматривали ли вы свойство IsNotReadOnly ? Если привязанный объект является ViewModel в домене MVVM, тогда дополнительное свойство имеет смысл. Если это прямая модель сущности, вы можете рассмотреть возможность композиции и представления специальной модели представления вашей сущности в форме.

97
ответ дан 23 November 2019 в 00:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: