2017-08-09 35 views
0

WPFでコンボボックスの選択したTextblock項目を取得するにはどうすればよいですか?ここで WPFでコンボボックスの選択したTextblock項目を取得する方法

は、レイアウトの変更があった場合は、コードを、次のことの可能なアプローチの一つが、コードのこのタイプは、たとえば、すべての可能なシナリオをカバーしないことがあり注意が必要である、あなたの特定のケースのために私のコード

<ComboBox Width="180" Name="comboBox"> 
       <ComboBoxItem> 
        <StackPanel Orientation="Horizontal"> 
         <Label Background="Red"></Label> 
         <TextBlock Width="150">Apple</TextBlock> 
         <Label ></Label> 
        </StackPanel> 
       </ComboBoxItem> 
</ComboBox> 

答えて

0

ですテンプレート等:

private void Button_Click(object sender, RoutedEventArgs e) 
{ 
    var item = (comboBox.SelectedItem as ComboBoxItem).Content as StackPanel; 
    TextBlock tbkValue = null; 
    if (item != null) 
    { 
     tbkValue = (item as StackPanel).Children.Cast<UIElement>().ToList().Where(it => it.GetType() == typeof(TextBlock)).Cast<TextBlock>().FirstOrDefault(); 
    } 
    if(tbkValue != null) 
    { 
     MessageBox.Show(tbkValue.Text); 
    } 
} 

は、代わりに私がに前後のデータ更新の複雑さの大部分を緩和だけでなく、あまりきれいではない唯一の可能性がある時はいつでもアプローチを結合WPFの強力なデータは、保守性、MVVMを使用することができるお勧めしますもちろんユニットt安定したコードも同様です。

これはあなたにいくつかのアイデアを提供します。

関連する問題