Получение содержимого ячейки из C # Grid Control - PullRequest
0 голосов
/ 17 декабря 2010

Я использую System.Windows.Controls.Grid в приложении C #.Когда форма загружена, я добавил UIElement s в ячейки.Но когда я щелкаю по ячейке, как мне вернуть текущий UIElement обратно?

PS: я искал в Интернете и обнаружил, что нам нужно перебрать UIElementCollection и получить значения.

Но это не очень хорошая идея.Потому что, если у нас 1000 ячеек и 1000 медиаэлементов, мне нужно пройти через все UIElement s.Итак, предложите мне, как мы получим контент.

Мой код Фрагмент: (Пробная версия)

          private void DispImage(System.Windows.UIElement uiElement)
          {
              foreach (var item in this.grid1.Children)
                {
                    if (item is textBox1)
                    {
                        element = item;
                        break;
                    }
                }
                if (element != null)
                {
                    this.grid1.Children.Remove(element as UIElement);
                }

                if (uiElement != null)
                {
                    Grid.SetRow(uiElement, CurrentRow);
                    Grid.SetColumn(uiElement, CurrentColumn);
                if (this.DynamicGrid.Children.IndexOf(UIElement) == -1)
                    this.DynamicGrid.Children.Add(uiElement);
               }
            }

Здесь UIElement является ImageObject.

1 Ответ

0 голосов
/ 17 декабря 2010

У вас были проблемы, потому что вы используете WPF в очень старом стиле, WinForms .

Ознакомьтесь с такими понятиями, как Модели , Привязки , Команды и все будет хорошо.

В вашем случае это означает:

  • Создайте модель для своегопредметы и поместите его в коллекцию моделей
  • Свяжите свою модель с шаблонным ItemsControl, с соответствующими ItemsPanel
  • Определите шаблон для ваших элементов, который обернет ваш UIElement в Button
  • Реализует Command, чтобы делать все, что вы хотите
  • Назначьте Command своему Button
  • ???
  • Прибыль

В более общем смысле, не изменяйте пользовательский интерфейс напрямую: изменяйте свою модель и позволяйте пользовательскому интерфейсу взаимодействовать с ней.

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