Ich möchte eine Gridview-Klick in ein DataTemplate-Element binden. Ich muss das DataTemplate-Element verwenden, wie es für HubSections erforderlich ist.Binding-Klick-Handler in DataTemplate
Wenn ich diesen Befehl innerhalb des Datatemplate-Elements binden, erhalte ich eine Fehlermeldung:
"Object reference not set to an instance of an object"
<Frame x:Name="frame">
<Hub VerticalAlignment="Center" HorizontalAlignment="Center" >
<HubSection Width="250" x:Name="section1" IsHeaderInteractive="True" >
<DataTemplate>
<GridView IsItemClickEnabled="True" ItemClick="{x:Bind MainPageVM.click}">
<RelativePanel>
<Image x:Name="image" Source="Assets/1.png" Width="Auto" Height="250" />
<TextBlock x:Name="page1" Text="page1" />
</RelativePanel>
</GridView>
</DataTemplate>
</HubSection>
//....
</Hub>
</Frame>
Wenn ich jedoch den gleichen Handler außerhalb eines Datatemplate-Elements (zum Beispiel HubSectionHeaderClick) binde es ist funktioniert gut.
Aber ich verstehe nicht warum? Und welche Möglichkeiten muss ich haben, um das zu lösen?
Edit: Hier ist die XAML mit dem Elementname:
<Hub VerticalAlignment="Center" HorizontalAlignment="Center" x:Name="ThisIsHub" >
und die Bindung:
Binding ElementName=ThisIsHub, Path=DataContext.click
den Fehler bekommen:
Cannot resolve property "click" in data context of type 'object'
[Dies] (http://stackoverflow.com/questions/27232849/silverlight-datatemplate-binding-to- click-event) Problem scheint ähnlich zu sein, funktioniert aber nicht unter UWP/Win10. – inix42
Ich denke, Datenkontext von dstatemplate ist anders – Archana
Geben Sie Hub-Steuerelement einen Namen. Verwenden Sie diese Bindung {Binding ElementName = '' Hubrlement '', Path = "DataContext.clickcommand}. Angenommen, Ihr Hub-Element dstacontext verweist auf MsinPageVM. Lassen Sie mich wissen, ob es funktioniert – Archana