나는 두 개의 탭이있는 탭 컨트롤을 가지고 있습니다. 각 탭의 내용은 ListCollectionView에 바인드되고 데이터 템플리트에는 항목을 표시하는 격자가 있습니다. 문제는 정렬 할 열을 클릭하면 다른 탭을 선택하고 첫 번째 탭으로 돌아 가면 정렬이 지워진다는 것입니다. 알려진 버그입니까?WPF Toolkit Datagrid 버그
<Window x:Class="WpfApplication3.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:toolkit="http://schemas.microsoft.com/wpf/2008/toolkit"
Title="Window1" Height="538" Width="1223">
<Window.Resources>
<DataTemplate x:Key="TestTemplate">
<toolkit:DataGrid ItemsSource="{Binding}" AutoGenerateColumns="false" IsReadOnly="True" >
<toolkit:DataGrid.Columns>
<toolkit:DataGridTextColumn Binding="{Binding IntVal}" Header="Number"></toolkit:DataGridTextColumn>
<toolkit:DataGridTextColumn Binding="{Binding StringVal}" Header="String"></toolkit:DataGridTextColumn>
</toolkit:DataGrid.Columns>
</toolkit:DataGrid>
</DataTemplate>
</Window.Resources>
<Grid>
<TabControl>
<TabItem Header="tab1" ContentTemplate="{StaticResource TestTemplate}" x:Name="a" Content="{Binding}"/>
<TabItem Header="tab2" ContentTemplate="{StaticResource TestTemplate}" x:Name="b" Content="{Binding}"/>
</TabControl>
</Grid>
코드 behid :
public partial class Window1 : Window
{
public Window1()
{
InitializeComponent();
List<test> intt = new List<test>
{
new test { IntVal = 5, StringVal = "abc" },
new test { IntVal = 12, StringVal = "cc" },
new test { IntVal = 2, StringVal = "sdgc" },
new test{IntVal=64,StringVal="df"},
new test{IntVal=1234,StringVal="werw"},
new test{IntVal=14,StringVal="sdvvd"},
new test{IntVal=136,StringVal="aasr"}
};
List<test> intt2 = new List<test>
{
new test { IntVal = 5, StringVal = "abc" },
new test { IntVal = 12, StringVal = "cc" },
new test { IntVal = 2, StringVal = "sdgc" },
new test{IntVal=64,StringVal="df"},
new test{IntVal=1234,StringVal="werw"},
new test{IntVal=14,StringVal="sdvvd"},
new test{IntVal=136,StringVal="aasr"}
};
this.a.DataContext = new ListCollectionView(intt);
this.b.DataContext = new ListCollectionView(intt2);
}
public class test
{
public int IntVal { get; set; }
public string StringVal { get; set; }
}
}
감사 나는 그것에게 시험을주고 도움이된다면 볼 수 있습니다. 탭에서 데이터 격자를 하드 코딩 할 때 작동합니다. 나는 당신이 템플렛을 사용할 경우에만 탭이 모든 것을 처음부터 창조한다고 생각한다. –