none
Мне необходимо сделать подсветку ячеек в DataGrid RRS feed

  • Вопрос

  • Я бы хотел сделать так же удобно, как приведено ниже для строк.

    И еще один вопрос. Как сделать изменение свойств строки иди ячейки не в теле функции DataGrid_LoadingRow, а в тексте кода С#, там аргумент "e" не распознается?

    Для всей строки и отдельной ячейки строки с номером столбца i.

    private void DataGrid_LoadingRow(object sender, System.Windows.Controls.DataGridRowEventArgs e)
            {

                int CountColorFromTo;
                bool ColorLine;

                CountColorFromTo = Model.CountColorFromTo;
                ColorLine = Model.ColorLine;
                LineDom item = e.Row.Item as LineDom;
                if (item != null)
                {
                    UInt32 row = item.CountMyDomTAKE;
                 
                    if (row > CountColorFromTo && ColorLine == true)
                    {
                        e.Row.Background = new SolidColorBrush(Color.FromArgb(100, 218, 166, 73));
                       // e.Row.Foreground = new SolidColorBrush(Color.FromArgb(0, 198, 187, 137));
                    }
                }

            }

    26 октября 2012 г. 11:28

Ответы

Все ответы

  • Добрый день.

    Вот посмотрите здесь.

    • Предложено в качестве ответа Abolmasov Dmitry 13 ноября 2012 г. 8:35
    • Помечено в качестве ответа Abolmasov Dmitry 26 ноября 2012 г. 6:46
    26 октября 2012 г. 13:46
    Отвечающий
  • А сделать только через C#,без xaml возможно?

    Я считаю каждую строчку и вывожу в окно и мне проще свойство менять ячейки вывода каждый раз.Мне толькоо понять как мне добраться до этого свойства.

    .dataGrid1.ItemsSource

    У меня такого нет. В Blend есть поле DataGrid,но данные оно получает через биндинг к LinesDom.  И вот как в таком случае свойство менять?

    26 октября 2012 г. 14:35
  • Привет.

    Скорее всего через бленд вы эту проблему не решите. В нем вы можете сделать стили ячеек (то как они будут выделяется) и описать конверторы в xaml, которые после реализовать в C#. И все это очень близко будет к примеру, что вам дали выше.

    Большинство решений основывается на совмещении xaml и c# кода, но если вы хотите вся сделать без разметки, то получить ячейку вы можете с помощью метода, описанного здесь - Get WPF DataGrid row and cell

    Получать ее скорее всего придется в том же методе, в котором вы меняете строки. Либо с помощью метода получения строки (описанного в той же статье) получать каждую строку и уже пробегаться по ее ячейкам.


    Для связи [mail]

    13 ноября 2012 г. 8:35