ListView中的Wpf组合框绑定
我对listview中组合框的数据绑定有问题。 我有两门课:ListView中的Wpf组合框绑定,wpf,data-binding,listview,combobox,Wpf,Data Binding,Listview,Combobox,我对listview中组合框的数据绑定有问题。 我有两门课: 交易 基质 事务具有基底属性,事务a保存在数据库中。在程序开始时,我希望将所有事务作为列表加载,并在ListView中显示它们。基板的每种可能性都应显示在组合框中,在组合框中选择实际基板 我试过这样做 XAML 代码隐藏 public partial class UCInternTransaction : UserControl { #region Attribute private BsCBTTransac
- 交易
- 基质
代码隐藏
public partial class UCInternTransaction : UserControl
{
#region Attribute
private BsCBTTransactionController mTransactionController;
private ObservableCollection<BsCBTSubstrate> mSubstrateList;
#endregion
public UCInternTransaction()
{
InitializeComponent();
//Load Transactions
this.mTransactionController = WpfBioGas.Core.BsCAppFactory.getInstance().getCBTTransactionController();
this.mTransactionController.loadTransactions();
this.DataContext = this.mTransactionController.TransactionList;
loadData();
}
private void loadData()
{
//Load Substrate and bind to CBSubstrate
this.mSubstrateList = new ObservableCollection<BsCBTSubstrate>();
foreach (BsCBTSubstrate sub in WpfBioGas.Core.BsCAppFactory.getInstance().getBTFacade().BsBTSubstrate.loadAll())
{
this.mSubstrateList.Add(sub);
}
}
public ObservableCollection<BsCBTSubstrate> SubstrateList
{
get { return this.mSubstrateList; }
}
}
公共部分类UCINTERTRANSACTION:UserControl
{
#区域属性
专用BsCBTTransactionController mTransactionController;
私人可观察收集mSubstrateList;
#端区
公共UCINTERTRANSACTION()
{
初始化组件();
//加载事务
this.mTransactionController=WpfBioGas.Core.bscapfactory.getInstance().getCBTTransactionController();
this.mTransactionController.loadTransactions();
this.DataContext=this.mTransactionController.TransactionList;
loadData();
}
私有void loadData()
{
//加载基底并结合到CBS基底上
this.mSubstrateList=新的ObservableCollection();
foreach(WpfBioGas.Core.bscapfactory.getInstance().getBTFacade().bsbtSubscriber.loadAll()中的BSCBtSubscriber子对象)
{
this.mSubstrateList.Add(sub);
}
}
公共可观察收集子速率列表
{
获取{返回this.mSubstrateList;}
}
}
问题是列表的所有条目都显示在listview中,对于每一行,基板的所有可能性都在组合框中。但仅对Listview的第一行选择实际基板。您的组合框应在SelectedValue而不是SelectedItem上使用绑定 仅根据您在文章中展示的代码片段提供修复有点困难,但下面是一个使用两个内联XML数据源的现成示例:
<Page
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Page.Resources>
<XmlDataProvider x:Key="CharacterData">
<x:XData>
<Data xmlns="">
<Character First="Bart" Last="Simpson" Gender="M"/>
<Character First="Homer" Last="Simpson" Gender="M"/>
<Character First="Lisa" Last="Simpson" Gender="F"/>
<Character First="Maggie" Last="Simpson" Gender="F"/>
<Character First="Marge" Last="Simpson" Gender="F"/>
</Data>
</x:XData>
</XmlDataProvider>
<XmlDataProvider x:Key="GenderData">
<x:XData>
<Data xmlns="">
<Gender ID="F" Description="Female" />
<Gender ID="M" Description="Male" />
</Data>
</x:XData>
</XmlDataProvider>
</Page.Resources>
<ListView ItemsSource="{Binding Source={StaticResource CharacterData}, XPath=Data/Character}">
<ListView.View>
<GridView>
<GridViewColumn Header="Last Name"
DisplayMemberBinding="{Binding XPath=@First}" />
<GridViewColumn Header="Gender">
<GridViewColumn.CellTemplate>
<DataTemplate>
<ComboBox Width="75" SelectedValue="{Binding XPath=@Gender}"
DisplayMemberPath="@Description" SelectedValuePath="@ID"
ItemsSource="{Binding Source={StaticResource GenderData}, XPath=Data/Gender}" />
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>
</Page>
<Page
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Page.Resources>
<XmlDataProvider x:Key="CharacterData">
<x:XData>
<Data xmlns="">
<Character First="Bart" Last="Simpson" Gender="M"/>
<Character First="Homer" Last="Simpson" Gender="M"/>
<Character First="Lisa" Last="Simpson" Gender="F"/>
<Character First="Maggie" Last="Simpson" Gender="F"/>
<Character First="Marge" Last="Simpson" Gender="F"/>
</Data>
</x:XData>
</XmlDataProvider>
<XmlDataProvider x:Key="GenderData">
<x:XData>
<Data xmlns="">
<Gender ID="F" Description="Female" />
<Gender ID="M" Description="Male" />
</Data>
</x:XData>
</XmlDataProvider>
</Page.Resources>
<ListView ItemsSource="{Binding Source={StaticResource CharacterData}, XPath=Data/Character}">
<ListView.View>
<GridView>
<GridViewColumn Header="Last Name"
DisplayMemberBinding="{Binding XPath=@First}" />
<GridViewColumn Header="Gender">
<GridViewColumn.CellTemplate>
<DataTemplate>
<ComboBox Width="75" SelectedValue="{Binding XPath=@Gender}"
DisplayMemberPath="@Description" SelectedValuePath="@ID"
ItemsSource="{Binding Source={StaticResource GenderData}, XPath=Data/Gender}" />
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>
</Page>