데이터 그리드 (WPF .NET4)에 업데이트 항목을 빠르게하는 방법 4. 여기내가 WPF .NET에서 데이터 그리드에 대한 quastion이
는 데이터 그리드와 XAML 코드 :
<DataGrid Name="m_DataGrid">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding Path=Name}">
<DataGridTextColumn.CellStyle>
<Style TargetType="{x:Type DataGridCell}">
<Style.Triggers>
<Trigger Property="IsSelected" Value="True" >
<Setter Property="Background" Value="Gray" />
<Setter Property="Foreground" Value="White" />
<Setter Property="BorderBrush" Value="Gray" />
</Trigger>
<DataTrigger Binding="{Binding Path=IsRed}" Value="True">
<Setter Property="Foreground" Value="Red" />
</DataTrigger>
</Style.Triggers>
</Style>
</DataGridTextColumn.CellStyle>
</DataGridTextColumn>
</DataGrid.Columns>
</DataGrid>
그리고 창에 방법이 있습니다 코드 :
public class MyItem
{
public string Name { get; set; }
public bool IsRed { get; set; }
public MyItem(string _Name)
{
Name = _Name;
IsRed = false;
}
}
: 여기
private void Window_Loaded(object sender, RoutedEventArgs e)
{
for (int i = 0; i < 100; i++)
{
m_DataGrid.Items.Add(new MyItem(string.Format("Item {0}", i)));
}
}
private void Window_PreviewKeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Space)
{
e.Handled = true;
((MyItem)m_DataGrid.SelectedItem).IsRed = !((MyItem)m_DataGrid.SelectedItem).IsRed;
m_DataGrid.SelectedIndex++;
m_DataGrid.Items.Refresh();
}
}
그리고는 MyItem 클래스 코드입니다
문제는 m_DataGrid.Items.Refresh() 메서드를 사용해야한다는 것입니다. 빨간색으로 항목을 표시합니다. 하지만 내가 예를 들면. 100 항목이 방법은 너무 느립니다. 따라서 스페이스 바를 길게 누르면 아이템이 매우 느리게 붉은 색으로 표시됩니다. 어떻게 더 우아하고 우아한 방법으로 이것을 할 수 있을까요? 새로 고침 방법없이 항목 색상을 변경하는 방법은 무엇입니까? 답변과 조언 주셔서 감사합니다.
큰 THX ...이 내 문제를 해결;) – MichalDawn