private void SaveMask() { var maskArrayCollection = (ObservableCollection <Object>)MaskTable.ItemsSource; int[,] maskArray = new int[maskArrayCollection.Count, maskArrayCollection.Count]; for (int i = 0; i < maskArrayCollection.Count; i++) { dynamic row = maskArrayCollection[i]; IDictionary <string, object> dictionary = (IDictionary <string, object>)row; for (int j = 1; j <= maskArrayCollection.Count; j++) { maskArray[i, j - 1] = Int32.Parse(dictionary["Col" + j.ToString()].ToString()); } } ImageOperations.CustomFilter(image, maskArray); Window.Close(); }