Соответствие шаблону F # с DataGridColumn.Visibility - PullRequest
5 голосов
/ 03 июня 2010

Я сталкиваюсь с ситуацией, когда использую сопоставление с образцом для определения свойства видимости столбца. System.Windows.Visibility имеет два поля, Visibility.Visible и Visibility.Collapsed. Может ли кто-нибудь сказать мне, почему следующий код:

let colItem = myDataGrid.Columns.Item 1
     chkBox.IsChecked <-
          match colItem.Visibility with
               | Visibility.Visible -> new Nullable<bool>(true)
               | Visibility.Collapsed -> new Nullable<bool>(false)

генерирует следующее предупреждение:

Неполные совпадения с образцом на этом выражение. Например, значение «2uy» может указывать на случай, не охваченный по шаблону (ам).

1 Ответ

7 голосов
/ 03 июня 2010

Теоретически значение типа Visibility может быть чем-то иным, чем Visible или Collapsed, потому что перечисления .net допускают любое значение базового целочисленного типа в качестве значения для типа перечисления (для таких вещей, как перечисления ORing).

...