2011-05-12 3 views
2

나는 다음과 같은 WPF 컨트롤은 XAML에 추가 한 :의 ListView 항목의 바인딩을 작성 프로그램

<ListView Margin="22,80,271,12" Name="listView1" ItemsSource="{Binding}" /> 

내가 프로그래밍리스트 뷰 객체를 생성하는 방법을 알고있다. 제가 누락 된 유일한 방법은 어떻게 재산을 추가 할 수있는 것입니까?

ItemsSource="{Binding}" 

해당 개체에 코드로 저장할 수 있습니다. 나는 이미 C#으로 열과 gridview를 추가 할 수 있었다. 내가 누락 된 유일한 것은 해당 속성 ItemsSource = "{Binding}"을 추가하는 것입니다.

나는 대답 here을 찾으려고 노력했습니다.

답변

2

최단이 (XAML의 직역)해야한다 :

listView1.SetBinding(ListView.ItemsSourceProperty, new Binding()); 
2
listView1.ItemsSource = listView1.DataContext as IEnumerable; 
+0

'ItemsSource'는'ListView'의 속성입니다 이것은'System.Windows.Controls' 네임 스페이스에있는'ItemsControl'에서 상속받습니다. 'System.Windows.Controls'에 using 문을 추가하십시오. – kenwarner

+0

바인딩되지 않습니다. 왜 그런지 모르십니까? 나는 또한 시도 : listView.ItemsSource = listView.DataContext IEnumerable ; listview는 DynamicListViewItem Objects로 채워지기 때문에 –

+2

기술적으로 ItemsSource와 DataContext간에 바인딩을 만드는 것과 같지 않습니다. 단순히 동일한 객체로 설정하는 것입니다. DataContext가 변경되면 ItemsSource는 여전히 이전 값을 가리 킵니다. 바인딩 방법에 대한 내 대답을 참조하십시오. –

1

이게 당신이 찾고 있는게 있나요?

Binding myBinding = new Binding(); 
myBinding.ElementName = "item-you-are-binding-to"; 
myBinding.Path = new System.Windows.PropertyPath("property-you-are-binding-to"); 
listView1.SetBinding(ContentProperty, myBinding); 
1

당신이해야 할 일은 이것이다 :

var binding = new Binding("DataContext"); 
binding.Source = listView1; 
listView1.SetBinding(ListView.ItemsSourceProperty, binding); 
관련 문제