1

我无法弄清楚如何将我的列表视图绑定到我的 ViewModel 中的两个属性和我的视图模型中的列表。

是否可以覆盖 ListViews ItemsSource 并将 ListView 中的 Checkbox 直接绑定到父 ViewModel?

像这样的东西...

        <ListView ItemsSource="{Binding Path=SomeListInViewModel}">
            <ListView.View>
                <GridView>
                    <GridViewColumn>
                        <GridViewColumn.CellTemplate>
                            <DataTemplate>
                                <DockPanel>
                                    <CheckBox 
                                        IsEnabled="{Binding SomePropertyInViewModel}" 
                                        IsChecked="{Binding SomePropertyInsideListObj, Mode=TwoWay}" />
                                </DockPanel>
                            </DataTemplate>
                        </GridViewColumn.CellTemplate>
                    </GridViewColumn>
                </GridView>
            </ListView.View>
        </ListView>
4

1 回答 1

3

有两种可能的方式:

1) 命名 ListView

<ListView x:Name="MyListView" ItemsSource="{Binding Path=SomeListInViewModel}">

然后在绑定上使用 ElementName 属性

IsEnabled="{Binding ElementName=MyListView, Path=Whatever}" 

2)在绑定中使用RelativeSource

IsEnabled="{Binding Path=Whatever, RelativeSource={RelativeSource AncestorType={x:Type ListView}}}" 

在这两种情况下,如果您的视图模型设置为 ListView 的 DataContext,则路径将类似于DataContext.SomePropertyInViewModel.

于 2013-05-23T17:00:58.827 回答