Как я могу подключить WPFToolkit DataGrid к источнику поисковых запросов, который находится в коде позади - PullRequest
1 голос
/ 04 декабря 2009

Я реализую сетку данных WPFToolkit и хочу связать ее с ее источником. В настоящее время я делаю это программно в коде через привязку результатов запроса к ItemsSource. Тем не менее, это недостаточно эффективно, так как я хочу иметь возможность выбирать, какие столбцы отображать, а также переименовывать заголовки, для которых мне необходимо связывание для каждого раздела datagridtextcolumn.

Буду признателен за любые идеи. Заранее спасибо!

1 Ответ

2 голосов
/ 04 декабря 2009

Вы также можете установить привязки каждого столбца в коде позади.

Вот пример DataGrid с определенными вручную столбцами с пользовательским текстом заголовка:

    <toolkit:DataGrid x:Name="dataGrid" AutoGenerateColumns="False">
        <toolkit:DataGrid.Columns>
            <toolkit:DataGridTextColumn x:Name="column1" Header="My Header" />
            <toolkit:DataGridTextColumn x:Name="column2" Header="Another Header" />
            <toolkit:DataGridTextColumn x:Name="column3" Header="Third Header" />
        </toolkit:DataGrid.Columns>
    </toolkit:DataGrid>

А вот некоторый код позади, который связывает каждый столбец со свойством из коллекции, которая установлена ​​как ItemsSource:

this.dataGrid.ItemsSource = this.testCollection; // replace with your collection
this.column1.Binding = new Binding("Property1"); // replace with your property names
this.column2.Binding = new Binding("Property2");
this.column3.Binding = new Binding("Property3");

Вы можете изменить текст заголовка и видимость в коде, если хотите:

this.column1.Header = "New Header";
this.column2.Visibility = System.Windows.Visibility.Collapsed;

Я просто использую простой тестовый класс Prop с некоторыми строковыми свойствами.

public class Prop
{
    public string Property1 { get; set; }
    public string Property2 { get; set; }
    public string Property3 { get; set; }

    public Prop(string p1, string p2, string p3)
    {
        this.Property1 = p1;
        this.Property2 = p2;
        this.Property3 = p3;
    }
}
...