wpf主要详细信息列表视图绑定不起作用

时间:2015-03-21 14:13:04

标签: c# wpf xaml binding user-controls

我有三个视图模型: AccountListViewModel(具有accountviewmodels和selectedaccount属性的集合)

public ObservableCollection<AccountViewModel> AccountList 
public AccountViewModel SelectedAccount

AccountViewModel(具有transactionviewmodel的集合)

public ObservableCollection<TransactionViewModel> Transactions

和TransactionViewModel。

我将主窗口的datacontext设置为AccountListViewModel,并且我在主窗口中设置了两个Usercontrols(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 usercontrol的项目源

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

和TransactionListView用户控件的itemssource

<ListView ItemsSource="{Binding Transactions}" >

AccountList正确显示但是当我选择一个帐户时,虽然逻辑是正确的但我没有显示任何交易。

保存TransactionListView的contentcontrol的Content属性设置为SelectedAccount,TransactionListView itemsource是Transactions集合,因此每当我点击一个帐户时,该帐户的事务集合应该显示在第二个contentcontrol中。

1 个答案:

答案 0 :(得分:0)

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

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

这是数据网格的一个示例,但适用相同的概念。