Laden...

MVVM & DataBinding

Erstellt von xploid vor 15 Jahren Letzter Beitrag vor 15 Jahren 2.277 Views
X
xploid Themenstarter:in
44 Beiträge seit 2006
vor 15 Jahren
MVVM & DataBinding

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

1.433 Beiträge seit 2006
vor 15 Jahren

Grüsse
Daniel
Space Profile
Wer nicht fragt, der nicht gewinnt

U
1.578 Beiträge seit 2009
vor 15 Jahren

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

X
xploid Themenstarter:in
44 Beiträge seit 2006
vor 15 Jahren

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.