2016-07-16 2 views
0

私はdaetagridとコンボボックスとテキストボックスをwpfのウィンドウに持っています。 XmaIでwpfで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> 

私はmytblという名前のテーブルのすべてのフィールドを取得し、このコードのデータグリッドでそれらを示しています。

private void window_Loaded(object sender, RoutedEventArgs e) 
    { 
     var q= from j in CamDB.mytbl select q; 
     mydgv.ItemsSource = q.ToList(); 
    } 

mytblはテーブルです2つのフィールド:Camera_Name,Camera_Typeがあります。今度は、テキストボックスにCamera_Nameの値を表示し、DataGridの行を選択すると、コンボでCamera_Typeという値を表示します。私はthis linkを読んで、次のコードで試してみましたが、コンボについてはうまくいかず、テキストボックスについてはうまくいきました。

private void mydgv_SelectionChanged(object sender, SelectionChangedEventArgs e) 
    { 
     var AllFields = mydgv.SelectedItem; 
     txtCameraName.Text = AllFields.GetType().GetProperty("Camera_Name").GetValue(AllFields, null).ToString(); 
     cmbCameraType.SelectedValue = AllFields.GetType().GetProperty("Camera_Type").GetValue(AllFields, null); 
    } 

答えて

0

私は、次のコードを使用し、それが動作します:

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

これは、バインディングを使用するxamlでもっと簡単に行うことができます。私の答えをチェックしてください。 – GregaMohorko

0

はあなたが結合しようとしたことがありますか? XAMLでテキストボックスとコンボボックスにこれらを追加する

試してみてください。

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

他のものは省略しました。

+0

はい、ComboBoxのTextプロパティを編集しようとしています。コンボボックスは通常そのように使用されません。しかし、本当に欲しいのであれば、更新された答えをチェックしてください。今はうまくいくはずです。お知らせ下さい。 – GregaMohorko

+0

あなたの更新答えはテキストボックスでは機能しましたが、コンボではまだ動作しません。 –

+0

よろしくお願いします。しかし、とにかく、おそらくあなたは間違ったことをしているでしょう。 Textではなく、ComboBoxのSelectedItemプロパティに値を割り当てる必要があります。 – GregaMohorko

関連する問題