Как контролировать количество разрешенных состояний флажков? - PullRequest
3 голосов
/ 26 мая 2011

Я использую gridcontrol из набора инструментов silverlight 4 и использую автоматически генерируемые столбцы.Мое логическое поле отображается как флажок с тремя состояниями (true, false, null).

public bool? Enabled { get; set; }

Как заставить его использовать только два состояния (true / false).Изменение типа поля в настоящее время недоступно.

@ Bala

[XAML]

<sdk:DataGrid Grid.Row="1" Grid.Column="1" x:Name="liveGrid" 
HorizontalAlignment="Center"
VerticalScrollBarVisibility="Hidden"  HorizontalContentAlignment="Center"
ItemsSource="{Binding MyDatasource}" AutoGenerateColumns="True" />

Просто мысль: существует ли для этого аннотация данных UIHint, может быть?

Возможное решение

После @Rick у меня есть рабочее решение:

[XAML]

<sdk:DataGrid Grid.Row="1" Grid.Column="1" x:Name="liveGrid" 
HorizontalAlignment="Center"
VerticalScrollBarVisibility="Hidden"  HorizontalContentAlignment="Center"
AutoGeneratingColumn="viewModel_AutoGeneratingColumn" 
ItemsSource="{Binding MyDatasource}" AutoGenerateColumns="True" />

[View]

 private void viewModel_AutoGeneratingColumn(object sender, DataGridAutoGeneratingColumnEventArgs e)
    {
        if ("Enabled" == e.PropertyName)
        {
            DataGridCheckBoxColumn checkBox = e.Column as DataGridCheckBoxColumn;
            checkBox.IsThreeState = false;
        }
    }

1 Ответ

1 голос
/ 26 мая 2011

Вы можете продолжать использовать автоматически созданные столбцы и для настройки этих столбцов. Вот статья, которая описывает, как настроить автоматически сгенерированные столбцы:

Техника в основном состоит в подключении события DataGrid.AutoGeneratingColumn.

Если вы выполните эту процедуру, все, что вам нужно сделать, это найти столбец (например, по имени свойства) и установить IsThreeState в false:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...