Сегодня я столкнулся с уникальной ситуацией, когда мне нужно было связать свойство Visible
кнопки в DataGridRow
, чтобы оно основывалось как на свойстве связанного объекта, так и на модели, поддерживающей его.
XAML:
<t:DataGrid ItemsSource="{Binding Items}">
<t:DataGrid.Columns>
<t:DataGridTemplateColumn>
<t:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Button Visibility="IsEditable OR IsAdmin"/>
</DataTemplate>
</t:DataGridTemplateColumn.CellTemplate>
</t:DataGridTemplateColumn>
</t:DataGrid.Columns>
</t:DataGrid>
Модель:
class TheModel
{
public ObservableCollection<Whatever> Items { get; set; }
public bool IsAdmin { get; set; }
}
Класс:
class Whatever
{
public bool IsEditable { get; set; }
}
Это поставило меня в тупик. Единственная концепция, которая могла бы сработать, могла бы заключаться в том, чтобы каким-то образом передать связанный объект и либо всю модель, либо только свойство IsAdmin
статическому методу в преобразователе или чем-то еще. Есть идеи?