当我在wpf中选择一行datagrid时,如何在组合框中显示一个值?

时间:2016-07-16 08:24:08

标签: c# wpf

我在wpf的窗口中有一个daetagrid,一个组合框和一个文本框。

xmal中的

  <?php foreach ($attribute_group['attribute'] as $attribute) { ?>
<?php if ($attribute['attribute_id'] == 102) { ?>
            <tr>
               <td><?php echo $attribute['name']; ?></td>
              <td><a href="<?php echo $attribute['text']; ?>"><?php echo $attribute['text']; ?></a></td>
            </tr>
<?php } else { ?>
        <tr>
          <td><?php echo $attribute['name']; ?></td>
          <td><?php echo $attribute['text']; ?></td>
        </tr>
        <?php } ?>
      <?php } ?>

我获取名为mytbl的表的所有字段,并使用以下代码在datagrid中显示它们:

<TextBox x:Name="txtCameraName"/>
<ComboBox x:Name="cmbCameraType" SelectedValuePath="Camera_Type" IsEditable="True" IsReadOnly="True" Text="Please select...">
    <ComboBoxItem>IP</ComboBoxItem>
    <ComboBoxItem>webcam</ComboBoxItem>
    <ComboBoxItem>analogue</ComboBoxItem>
</ComboBox>
<DataGrid x:Name="mydgv" SelectionChanged="dgvAddPersonTab_SelectionChanged">
    <DataGrid.Columns>
        <DataGridTextColumn  Binding="{Binding Camera_Name}" Width="80" />
        <DataGridTextColumn  Binding="{Binding Camera_Type}" Width="80" />
    </DataGrid.Columns>

private void window_Loaded(object sender, RoutedEventArgs e) { var q= from j in CamDB.mytbl select q; mydgv.ItemsSource = q.ToList(); } 是一个表,它有两个字段:mytblCamera_Name。现在,我想在选择一行datagrid时在文本框中显示Camera_Type的值,在组合中显示Camera_Name的值。我阅读了this link,我尝试使用以下代码,但它在文本框方面工作,但它并不适用于组合。

Camera_Type

2 个答案:

答案 0 :(得分:0)

我使用了以下代码并且它有效:

    cmbCameraType.Text = AllFields.GetType().GetProperty("Camera_Type").GetValue(AllFields, null).ToString();

答案 1 :(得分:0)

您是否尝试过绑定?

尝试将这些添加到xaml中的T​​extBox和ComboBox:

<TextBox Text="{Binding ElementName=mydgv,Path=SelectedItem.Camera_Name" />
<ComboBox Text="{Binding ElementName=mydgv,Path=SelectedItem.Camera_Type" />

其他事情被省略了。