2011-01-18 5 views
0

ページに2つのリストボックスがある場合、どちらのリストボックスでもSelectionChangedイベントが発生しません。リストボックスが1つしかなく、リストボックスの下にTextblockがある場合でも、リストボックスSelectionChangedイベントは発生しません。 2番目のリストボックスまたはTextBlock(最初のリストボックスの下)を削除すると、最初のリストボックスSelectionChangedイベントが発生します。私は2番目のリストボックスを独自のグリッドに配置しようとしましたが、選択変更されたイベントが発生することはありません。任意のアイデアや回避策?ありがとう!リストボックスSelectionChangedイベントは、ページ上にリストボックスが2つある場合には発生しません。

こんにちは、このコードは掲載していませんのでこちらはこちらです。

<!--ContentPanel - place additional content here--> 
     <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0"> 
      <ListBox Name="lbProps" Width="441" SelectionChanged="lbProps_SelectionChanged"> 
       <ListBox.ItemTemplate> 
        <DataTemplate> 
         <StackPanel Name="spMain"> 
          <Border BorderThickness="1" BorderBrush="white" > 
           <StackPanel Orientation="Vertical"> 
            <TextBlock Text="{Binding}" Margin="5" Width="430" FontSize="22"/> 
           </StackPanel> 
          </Border> 
         </StackPanel> 
        </DataTemplate> 
       </ListBox.ItemTemplate> 
      </ListBox> 
     </Grid> 
     <Grid x:Name="ContentPanel2" Grid.Row="2" Margin="12,0,12,0"> 
       <ListBox Name="lbProp3" Width="441" SelectionChanged="lbProp3_SelectionChanged"> 
       <ListBox.ItemTemplate> 
        <DataTemplate> 
         <StackPanel Name="spMain3"> 
          <Border BorderThickness="1" BorderBrush="white" > 
           <StackPanel Orientation="Vertical"> 
            <TextBlock Text="{Binding}" Margin="5" Width="430" FontSize="22"/> 
           </StackPanel> 
          </Border> 
         </StackPanel> 
        </DataTemplate> 
       </ListBox.ItemTemplate> 
      </ListBox> 
     </Grid> 
    </Grid> 

その他の重要な項目です。私はリストボックスを、コードの背後にある文字列の総称リストにバインドしています。ありがとう!

+0

こんにちは、これを簡単に/スタンドアロンで再現できますか? –

答えて

1

あなたがしているものでなければなりません。あなたのコードを示してください。以下の作品や、同じページに複数のリストボックスにフックアップ、複数のSelectionChangedイベント

XAML有することが可能であることを示しています

<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0"> 
    <StackPanel> 
     <ListBox SelectionChanged="ListBox1_SelectionChanged"> 
      <ListBoxItem Content="1 - A" /> 
      <ListBoxItem Content="1 - B" /> 
      <ListBoxItem Content="1 - C" /> 
      <ListBoxItem Content="1 - D" /> 
      <ListBoxItem Content="1 - E" /> 
      <ListBoxItem Content="1 - F" /> 
     </ListBox> 

     <TextBlock Text="some text" /> 

     <ListBox SelectionChanged="ListBox2_SelectionChanged"> 
      <ListBoxItem Content="2 - A" /> 
      <ListBoxItem Content="2 - B" /> 
      <ListBoxItem Content="2 - C" /> 
      <ListBoxItem Content="2 - D" /> 
      <ListBoxItem Content="2 - E" /> 
      <ListBoxItem Content="2 - F" /> 
     </ListBox> 
    </StackPanel> 
</Grid> 

CS:

private void ListBox1_SelectionChanged(object sender, SelectionChangedEventArgs e) 
{ 
    MessageBox.Show((e.AddedItems[0] as ListBoxItem).Content.ToString(), 
        "List 1", MessageBoxButton.OK); 
} 

private void ListBox2_SelectionChanged(object sender, SelectionChangedEventArgs e) 
{ 
    MessageBox.Show((e.AddedItems[0] as ListBoxItem).Content.ToString(), 
        "List 2", MessageBoxButton.OK); 
} 

更新

xamlで次のコードを使用しても、これを再作成することはできません。

public MainPage() 
{ 
    InitializeComponent(); 

    lbProps.ItemsSource = new ObservableCollection<String> { "one", "two", "three" }; 

    lbProp3.ItemsSource = new ObservableCollection<String> { "aaa", "bbb", "cccc" }; 
} 

private void lbProps_SelectionChanged(object sender, SelectionChangedEventArgs e) 
{ 
    MessageBox.Show(e.AddedItems[0].ToString(), "List 1", MessageBoxButton.OK); 
} 

private void lbProp3_SelectionChanged(object sender, SelectionChangedEventArgs e) 
{ 
    MessageBox.Show(e.AddedItems[0].ToString(), "List 2", MessageBoxButton.OK); 
} 

上記のコードを使用すると、XAMLで問題なく動作し、イベントハンドラに適切なメッセージが表示されます。

完全の問題を示す例を示してください。

+0

こんにちは、コードを掲載して申し訳ありませんので、こちらです。 – sleeprince

+0

@sleeprinceあなたのXAMLであっても、間違っていることを再現することはできません。更新された回答を参照 –

+0

コード例ありがとうございます。私はあなたのコードを使用でき、問題を複製することはできませんでした。あなたのリストボックスがStackPanelに含まれていることに気付いたので、同じことをしました。だから、ありがとう!あなたの例でStackPanelを取り出しても、うまく動作します。それはもちろん混乱しているように見えますが、両方のSelectionChangedイベントが発生します。そして、もう一度、ありがとう! – sleeprince

1

私の気持ちは、イベントがあなたが望むコントロールに到達しないような方法で重複しているかもしれません。

これの再現を見ることなく、推測以上のものを提供することは困難です。

+0

うん、それの前に何かがあります。 –

+0

あなたは正しいです。私は両方のリストボックスをStackPanelに入れ、今はすべてがpeachyで動作します。あなたの洞察をありがとう! – sleeprince

+0

これは良いニュースです:) –

関連する問題