Hallo C# Forum,
ich habe ein kleines Problem beim Binden eines Commands auf einer Checkbox in einem Listview.
Auszug aus dem Code:
<ListView Grid.Row="1" ItemsSource="{Binding UsenetAccounts}" IsSynchronizedWithCurrentItem="True" Name="AccountView" MouseDoubleClick="DoubleClick_ListView" Margin="0,-1,0,0">
<ListView.View>
<GridView>
<GridViewColumn Width="40">
<GridViewColumnHeader Tag="CheckBox" Content="Active" />
<GridViewColumn.CellTemplate>
<DataTemplate>
<Grid HorizontalAlignment="Stretch">
<CheckBox IsChecked="{Binding Active, UpdateSourceTrigger=PropertyChanged}" Command="{Binding ??????????}" />
</Grid>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn Width="140" Header="Description" DisplayMemberBinding="{Binding Description}" />
<GridViewColumn Width="100" Header="User" DisplayMemberBinding="{Binding Login}" />
<GridViewColumn Width="200" Header="Server" DisplayMemberBinding="{Binding Hostname}" />
<GridViewColumn Width="100" Header="Downloaded" DisplayMemberBinding="{Binding Downloaded}" />
<GridViewColumn Width="80" Header="Connections" DisplayMemberBinding="{Binding Connections}" />
</GridView>
</ListView.View>
</ListView>
Das Problem ist nun, wenn ich bei der Checkbox ein Command versuche zu binden, dieser nicht gefunden wird, da diese relativ zu UsenetAccounts (dem Binding) ist. Allerdings befindet sich der Command im DataContext von der ganzen Page (DataContext = ViewModel). Wie komme ich nun innerhalb dieses Binding auf den DataContext im XAML Code?
Ich bin um jeden kleinen Hinweis dankbar
Gruss
oli
Grüsse
Daniel
Space Profile
Wer nicht fragt, der nicht gewinnt
tolle antwort - tze
ich hab auch schon versucht mit dem TemplateParent etwas zu erreichen - aber noch nicht hinbekommen
zb hab ich versuch das CommandTarget entsprechend zu setzen - aber evtl muss ich den datacontext der checkbox auf das templateparent binden oder so - weiss auch noch nicht genau
hab naemlich genau das selbe problem gehabt - nur das ich fuer meinen fall das binding eh im itemmodelview brauchte, dann hab ich mich nicht weiter drum gekuemmert
Ich konnte das Problem lösen:
Command="{Binding Path=DataContext.SaveCommand, RelativeSource={RelativeSource AncestorType=Page}}"
So kommt man an den Parent DataContext (geht hoch bis zum Elementtyp Page). Von da sind dann meine Commands erreichbar.