2009-08-19 2 views
1

Я использую WindowsFormsIntegration в проекте WPF для добавления DataGridView, и у меня возникают некоторые проблемы с тем, что он просто рисуется в окне (требуется некоторое время).Ошибка DrawGridView DataGridView в WPF

Я знаю о решении с doublebuffered datagridview, но как вы можете использовать его в XAML для WPF или в C# для WPF?

Пример двойного буфера datagridview в WPF с WindowsFormsIntegration или любым альтернативным решением действительно будет оценен !!

Благодарим за предоставленную помощь!


Edit:

Я использую Microsoft Expression Blend 2 для интерфейса и я заметил, что создается словарь ресурсов. Удаление некоторых стилей там фактически решает часть проблемы, но я продолжаю получать ту же проблему. Действия, которые приводят к тому, что GroupBox, содержащий DataGridView, должны быть видимыми, - это щелчок на элементе управления вкладкой, а затем выбор RadioButton. Как только определенное RadioButtion будет проверено, становится видимым определенный GroupBox. Он содержит хост WindowsFormsIntegration, который сам содержит DataGridView, но WindowsFormsIntegration не отображается (или не нарисован), пока я не возьму мышь и не надену ее на кнопку внутри GroupBox ... Является ли выражение Blend ответственным за мои проблемы?

ответ

3

Отличная альтернатива использованию интеграции форм Windows для datagrids - это использование бесплатного и полного потрясающего родного WPat datagrid от Infragistics. Они называют это элементом управления xamDataGrid, и это абсолютно красиво мне верит. Я перехожу к некоторым важным точкам, чтобы представить это в приложении моей компании.

страница загрузки здесь: http://www.infragistics.com/dotnet/netadvantage/wpf.aspx?panel=Downloads#Downloads

Обзор страницы: http://www.infragistics.com/dotnet/netadvantage/wpf/xamdatagrid.aspx#Overview

NetAdvantage для WPF Экспресс 2009 Vol. 1 поможет вам начать работу с xamDataGrid ™ для разработки WPF (это не суд и имеет реальную xamDataGrid версии 9.1, не покупка не требуется, чтобы использовать его в своих приложениях ).

+1

круто, я понятия не имел, что Infragistics сделал бесплатный контроль ... –

1

Я отдаю себе отчет в растворе с DoubleBuffered DataGridView но как вы можете использовать это в XAML для WPF или в C# для WPF?

Нет ничего особенного в использовании этого решения, кроме как облегчить существующее взаимодействие между приложениями WPF и другими типами приложений Microsoft Windows, Windows Forms в вашем случае.

Ваша первая остановка по таким темам должна быть WPF Migration and Interoperability. В частности, вы найдете там прохождениям для обоих сценариев (я понимаю вы это покрыты уже, просто для полноты картины):

Эти пошаговые руководства основаны на MaskedTextBox Class, но вы можете легко адаптировать их к DataGridView Class.

В дополнительные шаги, необходимые для размещения пользовательского класса, полученный из DataGridView вместо, скажем, CustomDataGridView, снова покрыты в пошаговом:

Этот пример, являющийся составной элемент управления , очевидно, сложнее, чем простой производный CustomDataGridView в соответствии с existing solution, который вы хотите реализовать, но вы можете просто пропустить лишние шаги и все равно найти al l метаинформация относительно ссылок на сборки для этого настраиваемого элемента управления и т.п.

Сказанное, учитывая ваше редактирование, я не думаю, что отсутствие двойной буферизации на самом деле вызывает вопрос, хотя он может действительно исправить эффект, поэтому я оставлю этот эксперимент вам на данный момент - удачи !

+0

Я посмотрю эти пошаговые руководства. Спасибо! – Partial

+0

Использование дочернего свойства для System.Windows.Forms.Integration.WindowsFormsHost дало мне представление о чем-то ... но я не могу попробовать прямо сейчас. Это должно быть завтра. Я сообщу вам о моем прогрессе. – Partial