首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >ListView中的Wpf组合框绑定

ListView中的Wpf组合框绑定
EN

Stack Overflow用户
提问于 2010-02-08 21:10:47
回答 1查看 9.5K关注 0票数 4

我在列表视图中绑定组合框的数据时遇到了一个问题。我有两个类:

  • Transaction
  • Substrate

该事务具有衬底的属性,并且该事务被保存在数据库中。在程序开始时,我希望将所有事务加载为列表,并在ListView中显示它们。每种基材的可能性都应显示在选择实际基材的组合框中。

我试过像这样的XAML

<ListView.View>
            <GridView>

                <GridViewColumn Header="Menge">
                    <GridViewColumn.CellTemplate>
                        <DataTemplate>
                            <TextBox Text="{Binding Path=Amount}" />
                        </DataTemplate>
                    </GridViewColumn.CellTemplate>
                </GridViewColumn>

                <GridViewColumn Header="Substrate">
                    <GridViewColumn.CellTemplate>
                        <DataTemplate>
                            <ComboBox 
                                ItemsSource="{Binding ElementName=InternTransaction, Path=SubstrateList}"
                                DisplayMemberPath="Description"
                                SelectedValuePath="SubstrateID"
                                SelectedItem="{Binding Path=Substrate.SubstrateID}">
                            </ComboBox>
                        </DataTemplate>
                    </GridViewColumn.CellTemplate>
                </GridViewColumn>

            </GridView>
        </ListView.View>

代码隐藏

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; }
    }
}

问题是列表的所有条目都显示在列表视图中,并且对于每一行,基底的所有可能性都在组合框中。但仅对于Listview的第一行,选择实际的衬底。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2221745

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档