Datagrid con CollectionViewSource e TemplateColumn - binding nel DataTemplate nelle Window.Resources

Pertanyaan Datagrid con CollectionViewSource e TemplateColumn - binding nel DataTemplate nelle Window.Resources

  • lunedì 24 maggio 2010 17:00
     
     

    Ciao a tutti!

    Questa è più che altro una curiosità perchè ai fini pratici riesco a portare avanti il lavoro.

    Ho un Datagrid che ha come "ItemsSource" una "CollectionViewSource" la quale a sua volta esegue il raggruppamento dei dati tramite la proprietà "PropertyGroupDescription".

    Nel Datagrid ho anche una "TemplateColumn" con il suo "DataTemplate". Il problema è questo: se il DataTemplate lo metto direttamente nella TemplateColumn posso fare facilmente il binding dei dati (Text="{Binding nomeProprieta}") se il DataTemplate lo metto nelle Window.Resources collegandolo con un suo x:Name il binding dei dati non funziona più e non so come farlo.

    In sintesi: como posso riferirmi ai dati della collection di origine quando questa si trova nelle Window.reference?

    Grazie!
    Pileggi

    Ecco il codice:
    <CollectionViewSource x:Key="cvs" Source="{StaticResource art}">
        <CollectionViewSource.GroupDescriptions>
            <PropertyGroupDescription PropertyName="GenericOri"/>
        </CollectionViewSource.GroupDescriptions>
    </CollectionViewSource>

    Così funziona:
    <Custom:DataGridTemplateColumn>
        <Custom:DataGridTemplateColumn.CellTemplate>
            <DataTemplate>
                <TextBlock Text="{Binding ArticleNormName}"/>
            </DataTemplate>
        </Custom:DataGridTemplateColumn.CellTemplate>
    </Custom:DataGridTemplateColumn>

Tutte le risposte

  • lunedì 24 maggio 2010 19:53
    Moderatore
     
     
    Ho provato con Blend 4.0 RC e non riscontro il problema che hai indicato...
    Corrado Cavalli [Microsoft .NET MVP-MCP]
    UGIdotNET - http://www.ugidotnet.org
    Weblog: http://blogs.ugidotnet.org/corrado/
    Twitter: http://twitter.com/corcav
  • lunedì 24 maggio 2010 22:23
     
     

    Ciao Corrado, grazie della risposta!

    Ho rieditato il post più volte, perchè in effetti anche a me adesso Blend3 non mi da quel problema. Probabile che tu abbia letto una versione vecchia. Mi pare che Blend non si comporti sempre nello stesso modo, ma può anche darsi che sia io che mentre programmo non controllo bene. Mi procurerò presto la versione 4.0.

    La questione quindi è rimasta solo questa (ma è più una curiosità): c'è modo di riferimi ai dati della collection originaria dall'interno di un dataTemplate che si trova nelle Window.reference? Perche se scrivo "{Binding nomeProprieta}" non ottengo il risultato.

    Grazie ancora,

    Pileggi