【问题标题】:Bind combobox to collection in viewmodel将组合框绑定到视图模型中的集合
【发布时间】:2014-03-06 08:10:22
【问题描述】:

我在数据网格中有一个组合框。 Datagrid 绑定到项目源。我想将组合框填充到其父集合之外的集合中,但它不起作用。

<data:DataGrid x:Name="dgTransferStockroomGLDetails" AutoGenerateColumns="False" ColumnHeaderStyle="{StaticResource DataGridColumnHeaderStyle}"
                               VerticalScrollBarVisibility="Visible" ItemsSource="{Binding StockroomTransferDetails, Mode=TwoWay}"
                               CanUserResizeColumns="False" VerticalAlignment="Top" RowBackground="White" AlternatingRowBackground="White" GridLinesVisibility="All" Height="400">
                    <data:DataGrid.Columns>
                        <data:DataGridTemplateColumn Header="From Stockroom" Width="200" CanUserReorder="True" CanUserSort="True" IsReadOnly="False">
                            <data:DataGridTemplateColumn.HeaderStyle>
                                <Style TargetType="prim:DataGridColumnHeader">
                                    <Setter Property="HorizontalContentAlignment" Value="Center"/>
                                    <Setter Property="FontWeight" Value="Bold"/>
                                </Style>
                            </data:DataGridTemplateColumn.HeaderStyle>
                            <data:DataGridTemplateColumn.CellTemplate>
                                <DataTemplate>
                                <!--<TextBox Text="{Binding From_Stkrm_Id}" Width="200" Height="30" />-->
                                <ComboBox Width="200" Height="30" ItemsSource="{Binding WiingsStkrmList, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" DisplayMemberPath="Name" />
                                </DataTemplate>

                            </data:DataGridTemplateColumn.CellTemplate>
                        </data:DataGridTemplateColumn>
 </data:DataGrid.Columns>
                </data:DataGrid>

这是我的视图模型

private ObservableCollection<BuyerWebService.Stockroom> wiingsStkrmList;
        public ObservableCollection<BuyerWebService.Stockroom> WiingsStkrmList
        {
            get 
            { 
                return wiingsStkrmList; 
            }
            set 
            { 
                wiingsStkrmList = value;
                SendChangedNotification("WiingsStkrmList");
            }
        }

        private ObservableCollection<BuyerWebService.StockroomTransfer> stockroomTransferdetails;
        public ObservableCollection<BuyerWebService.StockroomTransfer> StockroomTransferDetails
        {
            get
            {
                return stockroomTransferdetails;
            }
            set
            {
                stockroomTransferdetails = value;
                SendChangedNotification("StockroomTransferDetails");
            }
        }

我检查了输出窗口,它说 在“BuyerPortal.BuyerWebService.StockroomTransfer”上找不到“WiingsStkrmList”属性

StockroomTransfer 用于绑定数据网格。该组合正在尝试在父项源中查找 WiingsStkrmList。

如何将其绑定到不同的集合?

【问题讨论】:

    标签: silverlight xaml mvvm


    【解决方案1】:

    您需要为绑定属性的位置指定一个相对源,通常通过指向绑定到视图模型的父元素。像这样的:

    ItemsSource="{Binding StockroomTransferDetails, RelativeSource={RelativeSource AncestorType=Grid}}"
    

    将 AncestorType=Grid 更改为具有您的视图模型的数据上下文的东西......基本上是在您的数据网格之外的东西。

    【讨论】:

      猜你喜欢
      • 2012-02-08
      • 2012-08-23
      • 1970-01-01
      • 1970-01-01
      • 2018-10-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多