2012-12-16 26 views
6

Bunun anlamı # # kodunun karşılığı nedir?Ciltleme ÖğeleriSource programatik olarak

<ListView 
    x:Name="taskItemListView" 
    DataContext="{Binding SelectedItem, ElementName=itemListView}" 
    ItemsSource="{Binding taskItems}"> 
... 
</ListView> 

Aşağıdaki kodu denedim, ancak işe görünmüyor ...

Binding b = new Binding(); 
b.Path = new PropertyPath("taskItems"); 

DependencyProperty dp = DependencyProperty.Register("itemsSource", typeof(object), typeof(object), null); 
BindingOperations.SetBinding(taskItemListView, dp, b); 

Düzenleme:

@ sa_ddam213 cevabı dayanarak

, bu çalıştı: böyle

Binding dataContextBinding = new Binding(); 
dataContextBinding.Path = new PropertyPath("SelectedItem"); 
dataContextBinding.Source = itemListView; 
BindingOperations.SetBinding(taskItemListView, ListView.DataContextProperty, dataContextBinding); 

Binding sourceBinding = new Binding(); 
sourceBinding.Path = new PropertyPath("taskItems"); 
BindingOperations.SetBinding(taskItemListView, ListView.ItemsSourceProperty, sourceBinding); 

cevap

4

Somthing çalışması gerekir:

BindingOperations.SetBinding(taskItemListView, ListView.DataContextProperty, new Binding("SelectedItem") { Source = itemListView}); 
BindingOperations.SetBinding(taskItemListView, ListView.ItemsSourceProperty, new Binding("taskItems") { Source = this }); 

Not: burada en

taskItemListView.SetValue(ListView.ItemsSourceProperty, this.Source); 

Daha fazla bilgi: "Kaynak = bu" thistaskItems tutan sınıf, SelectedItem

+0

Teşekkürler, harikalar yaratıyor! Sadece 2 küçük düzeltmeler: sınıf Binding, argüman almayan sadece bir kurucuya sahiptir ve ikinci Binding kaynağını ayarlamaya gerek yoktur. Sorumu düzenledim. – dcastro

+0

Bağlama, bir .NET4.0 projesinde şimdi bir dize arg komutu ile çalışır, bağlantı: http://msdn.microsoft.com/en-us/library/system.windows.data.binding.aspx –

+0

Not on Bir WinRT uygulaması: http://msdn.microsoft.com/en-us/library/windows/apps/br209820.aspx#constructors. – dcastro

İlgili konular