5
votes

I'm encountering a situation where I'm using pattern matching for determining the visibility property of a column. System.Windows.Visibility has two fields, Visibility.Visible and Visibility.Collapsed. Can enyone tell me why the following code:

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

generates the follwing warning:

Incomplete pattern matches on this expression. For example, the value '2uy' may indicate a case not covered by the pattern(s).

1

1 Answers

7
votes

In theory a value of type Visibility can be something other than Visible or Collapsed because .net enums allow any value of the underlying integral type as a value for the enum type (to allow things like ORing enums).