wpf主细节列表视图绑定不起作用



我有三个视图模型:AccountListViewModel(具有一组accountviewmodel和一个选定的account属性)

public ObservableCollection<AccountViewModel> AccountList 
public AccountViewModel SelectedAccount

AccountViewModel(具有transactionviewmodel的集合)

public ObservableCollection<TransactionViewModel> Transactions

和TransactionViewModel。

我将主窗口的数据上下文设置为AccountListViewModel,并且我在主窗口中设置了两个用户控件(AccountListView和TransactionListView)作为内容控件。

<DataTemplate x:Key="AccountListTemplate" >
        <views:AccountListView />
</DataTemplate>
<DataTemplate x:Key="TransactionListTemplate" >
        <views:TransactionListView />
</DataTemplate>
<ContentControl Content="{Binding}" ContentTemplate=" {StaticResource AccountListTemplate}" />
<ContentControl Grid.Row="1" Content="{Binding SelectedAccount}" ContentTemplate="{StaticResource TransactionListTemplate}" />

这是AccountListView用户控件的项目源

<ListView x:Name="AccountList" ItemsSource="{Binding Source={StaticResource GroupedAccounts}}" SelectedItem="{Binding SelectedAccount}" >

和TransactionListView用户控件的项目源

<ListView ItemsSource="{Binding Transactions}" >

AccountList显示正确,但当我选择一个帐户时,尽管逻辑正确,但不会显示任何交易。

持有TransactionListView的内容控件的Content属性设置为SelectedAccount,而TransactionListView项源是Transactions集合,因此每当我单击某个帐户时,该帐户的事务集合都应显示在第二个内容控件中。

尝试使用SelectedValue而不是SelectedItem,看看这是否有效。您可能还需要将模式更改为双向,并更新源触发器。

<DataGrid ItemsSource="{Binding Source}" 
              SelectedValue="{Binding Selected}"
              Margin="10">
        <DataGrid.Columns>
            <DataGridCheckBoxColumn Header="Test Checked" Binding="{Binding S}"/>
        </DataGrid.Columns>
    </DataGrid>

这是一个数据网格的例子,但同样的概念也适用。

最新更新