Если я правильно интерпретирую ваш вопрос, вы спрашиваете, как настроить таргетинг на определенные элементы многомерного массива:
<?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
Вы можете использовать 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
}
Я использую аналогичный подход как @Ofaim
private bool jobSaved = true;
private bool JobSaved
{
get => jobSaved;
set
{
if (value == jobSaved) return;
jobSaved = value;
OnPropertyChanged();
OnPropertyChanged("EnableSaveButton");
}
}
public bool EnableSaveButton => !jobSaved;
Рассматривали ли вы свойство IsNotReadOnly
? Если привязанный объект является ViewModel в домене MVVM, тогда дополнительное свойство имеет смысл. Если это прямая модель сущности, вы можете рассмотреть возможность композиции и представления специальной модели представления вашей сущности в форме.