【问题标题】:C# WPF Get Selected Combobox Binding FieldsC# WPF 获取选定的组合框绑定字段
【发布时间】:2020-08-13 18:08:23
【问题描述】:

我有一个组合框,其中包含一个数据模板,其中包含从数据表绑定的 3 个字段。

我遇到的问题是我想找出我在组合框中选择了哪个项目并访问其中一个绑定字段。 SelectedIndex 给了我位置,但我想要 id,所以我可以将它直接传递给 Insert 方法。

您可以在下面看到每个组合框项目都有 3 个字段。 我想确定所选项目的主键“uid”

     <ComboBox Name="cboCombo" Width="300" Height="42" TabIndex="3"
                      ItemTemplate="{StaticResource ComboBoxKey}"
                      ItemsSource="{Binding}"
                      IsSynchronizedWithCurrentItem="True"   
                          SelectedValuePath="uid"
                      FontSize="12"/>

<DataTemplate x:Key="ComboBoxKey}"">
            <Grid Height="35" Width="300" ShowGridLines="false">
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="0"></ColumnDefinition>
                    <ColumnDefinition Width="200"></ColumnDefinition>
                    <ColumnDefinition Width="75"></ColumnDefinition>
                </Grid.ColumnDefinitions>

                <TextBlock Grid.Column="0"  Text="{Binding uid
                    Style="{StaticResource txtStyle}"></TextBlock>
                <TextBlock Grid.Column="1"  Text="{Binding field_1}"
                    Style="{StaticResource txtStyle}"
                           TextWrapping="Wrap"></TextBlock>
                <TextBlock Grid.Column="2"  Text="{Binding field_2}"
                    Style="{StaticResource txtStyle}"></TextBlock>
            </Grid>
        </DataTemplate>

【问题讨论】:

  • 您可以将 selectedvalue 绑定到数据上下文中的某些公共属性。 SelectedValue="{绑定 SomeProperty}"

标签: c# wpf data-binding combobox


【解决方案1】:

我想我明白了:

DataRowView dr = (DataRowView)cboComboBox.SelectedItem;

【讨论】:

  • 嗯,是的,如果您在下拉列表中存储DataRow 对象。不过,这不是我的第一选择。
  • 它还需要代码隐藏。当您可以简单地将 SelectedItem 绑定到视图模型中的强类型属性时,为什么要这样做?
猜你喜欢
  • 1970-01-01
  • 2013-10-27
  • 2015-04-27
  • 2019-01-20
  • 1970-01-01
  • 2014-02-03
  • 2011-08-25
  • 2012-06-26
  • 1970-01-01
相关资源
最近更新 更多