Есть относительно простая вещь, которую я пытаюсь достичь, но я не уверен, как это сделать. По сути, у меня есть класс CLR следующим образом:
class SomeClass
{
public SomeEnum Status;
}
public enum SomeEnum { One, Two, Three };
У меня есть DataGrid, который я связываю ObservableCollection<SomeClass>
программно через код. В этой DataGrid у меня есть DataGridTemplateColumn
, содержащий две кнопки, как показано ниже:
<toolkit:DataGridTemplateColumn Header="Actions">
<toolkit:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<Button Content="ActionOne" />
<Button Content="ActionTwo" />
</StackPanel>
</DataTemplate>
</toolkit:DataGridTemplateColumn.CellTemplate>
</toolkit:DataGridTemplateColumn>
Что я хочу сделать, так это связать свойство IsEnabled этих кнопок со сравнением, основанным на значении {Binding Path = Status}. Например, в псевдокоде:
ActionOne.IsEnabled = BoundValue.Status != SomeEnum.Two
ActionTwo.IsEnabled = BoundValue.Status == SomeEnum.One || BoundValue.Status == SomeEnum.Two
Есть ли способ сделать это в XAML? В качестве альтернативы можно было бы просто написать конвертер значений для каждой кнопки, но, поскольку содержимое и другие детали кнопки также могут различаться, я не хочу в конечном итоге писать как 6 конвертеров значений.
Ура!