Несколько типов элементов управления в одном заголовке в сетке данных в Silverlight - PullRequest
0 голосов
/ 21 сентября 2009

Я хочу создать окно свойств в Silverlight с помощью DataGrid. Он будет иметь два столбца заголовка. Заголовок значения может иметь различные типы элементов управления. Он может иметь поле со списком, текстовое поле и другие элементы управления. Вот представление для сетки данных.

  1. Имя -------------- Тип элемента управления (Элемент управления для отображения)
  2. DisplayText ------- TextBox
  3. Тип -------------- ComboBox
  4. IsEnabled --------- CheckBox

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

Ответы [ 2 ]

0 голосов
/ 26 сентября 2011

Я использовал конвертер, который вернул управление. Конвертер создал привязку данных к исходному объекту Источником данных сетки данных является IEnumerable<PropertyPresenter>

    public class PropertyPresenter
    {
        public PropertyInfo PropertyInfo { get; set; }
        public object Source { get; set; }
    }

    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {

        FrameworkElement Control = null;
        var presenter = value as PropertyPresenter;

        Binding binding = new Binding(presenter.PropertyInfo.Name);
        binding.Mode = presenter.PropertyInfo.CanWrite ? BindingMode.TwoWay : BindingMode.OneWay;
        binding.Source = presenter.Source;

        if(presenter.PropertyInfo.PropertyType == typeof(bool))
        {
            Control = new CheckBox();
            Control.HorizontalAlignment = HorizontalAlignment.Right;
            Control.SetBinding(CheckBox.IsCheckedProperty, binding);
        }
        return Control;
    }
0 голосов
/ 22 сентября 2009

Вы смотрели на DataForm? Я не уверен, почему вы хотите сделать это в DataGrid.

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