4
가상화를 사용할 수있는 ListView 컨트롤에 이상한 문제가 있습니다. 문제를 재현하기 위해 아주 작은 파일럿 앱을 만들었습니다. 목록보기에서 몇 개의 텍스트 상자에 대해 뭔가를 입력 한 다음 아래로 스크롤하면 몇 페이지 후에 입력 된 값이 아래의 수정되지 않은 텍스트 상자에서 반복됩니다. 어떤 옵션이 있습니까 http://kepfeltoltes.hu/120228/Capture1_www.kepfeltoltes.hu_.pngListView 가상화 값을 재활용 모드에서 반복합니다.
:
<Window x:Class="WpfApplication3.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid Name="mainGrid">
<ListView ItemsSource="{Binding Path=DemoList}" >
<VirtualizingStackPanel.IsVirtualizing>
True
</VirtualizingStackPanel.IsVirtualizing>
<VirtualizingStackPanel.VirtualizationMode>
Recycling
</VirtualizingStackPanel.VirtualizationMode>
<ListView.ItemTemplate>
<DataTemplate>
<StackPanel>
<TextBox MinHeight="20" MinWidth="200" Margin="4"/>
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</Grid>
</Window>
그리고 코드 숨김 :
namespace WpfApplication3
{
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
demolist a = new demolist();
mainGrid.DataContext = a;
}
}
public class demolist
{
public demolist()
{
DemoList = new List<string>();
for (int i = 0; i <= 5000; i++)
{
DemoList.Add("sss");
}
}
public List<string> DemoList { get; set; }
}
}
그리고 문제에 대한 화면 캡처 여기
는 윈도우의 XAML입니다 이 문제를 해결하려면? 나는 이것이 재활용 모드와 관련이 있다고 생각하지만 정상적인 행동이 아니어야한다고 생각합니다. 사전에감사합니다,
이스트 반 확실히 이상한 효과, 그러나 그것 뿐이다 인해 재활용 모드 플러스 사실 당신은 아무것도에 TextBox.Text 속성을 바인딩하지 않을에 보인다
감사합니다. 코드가 제대로 실행되기 때문에 모든 것을 컨트롤에 바인딩 한 경우에만 재활용 모드를 사용할 수 있습니다. – kexx