2010-01-13 8 views
23

Gözlemlenebilir koleksiyonuma bağlı olan WPF Datagrid'imin, boş satırın en altta olmasını ve böylece kullanıcının daha fazla bilgi ekleyebilmesini istiyorum. Verileri başarılı bir şekilde bağladım, yani görebiliyorum.WPF datagrid, kullanıcının satır eklemesine izin veriyor mu?

'Yeni' boş satır neden gösterilmiyor?

<UserControl.Resources> 
    <CollectionViewSource x:Key="MyItems" Source="{Binding Path=AllItems}"> 
    </CollectionViewSource> 
</UserControl.Resource> 

<my:DataGrid HorizontalAlignment="Stretch" 
    AutoGenerateColumns="True" 
    SelectionUnit="FullRow" 
    CanUserAddRows="True" 
    CanUserDeleteRows="True" 
    DataContext="{StaticResource MyItems}" 
    ItemsSource="{Binding}"> 

PS: Ben Josh Smith's MVVM implementation kullanıyorum İşte benim xaml beyanıdır. Ayrıca konuyla ilgili bazı SO posts okudum ve theyhelped değil.

Şimdiden teşekkürler.

Güncelleme 2010-01-14:

usercontrol yük olayı oluşur, "CanUserAdddRows" yanlıştır. Şüphelendiğim, here listelenen koşullar ile ilgili bir şey var.

cevap

33

Sorun bulundu. Gözlemcim, ObservableCollection'ın bir parçası olan nesnede kamuya açıklanmadı.

* zaman için baş *

Teşekkür Hits.

+8

Bana da biraz zaman ayırdı. Parametresiz bir kurucuya ihtiyacınız olduğunu unutmayın ... – Jobo

4

Bağlama yaptığınız koleksiyon IEditableCollectionView uygulamasını uygularsa yeni boş satır değişecektir. here. Bu, bazen iyi çalışıyor ve açıklanamaz gibi görünüyor, ancak IEditableCollectionView bir başlangıç ​​olduğunu buldum söyleniyor

+0

Sunulan bağlantıya göre, ObservableCollection zaten IEditableCollectionView uygular. En azından böyle yorumlandı. –

+1

Ancak, http://msdn.microsoft.com/en-us/library/ms668604.aspx 'e göre, bunu yapmaz. Bahşiş için teşekkürler. –

13

ObeservableCollection öğesindeki nesnelerin varsayılan parametresiz bir kurucu olduğundan emin olun.