12

ListBox の動作は、最初の項目が自動的に選択されるというものですが、どうすれば回避できますか??

注: 私はこれを純粋な xaml で行うことを好みます。コード ビハインドのアイデアがある場合は、気にしないでください。

4

9 に答える 9

13

試す

IsSynchronizedWithCurrentItem="False"

于 2013-11-19T19:26:22.783 に答える
7

さて、私はFocusManager.FocusedElementを使用してこれを試しました
..リストボックス自体に最初のフォーカスを作成しました..フォーカスがあります..しかし要素は選択されていません..下に押すかタブを押すと..リストボックスの最初の要素が選択...

<Window
  ...... 
  FocusManager.FocusedElement="{Binding ElementName=listbox2}">
    <ListBox x:Name="listbox2" HorizontalAlignment="Left"
        VerticalAlignment="Bottom" Width="117.333" Height="116" 
        Margin="30.667,0,0,30">
        <ListBoxItem>Jim</ListBoxItem>
        <ListBoxItem>Mark</ListBoxItem>
        <ListBoxItem>Mandy</ListBoxItem>
</ListBox>
于 2009-09-09T11:27:03.993 に答える
5

IsSynchronizedWithCurrentItem="True" を削除し、必要に応じて次の SelectionChanged イベントに追加します。これは私の問題を解決しました

于 2014-08-16T19:22:01.887 に答える
4

SelectedIndex を -1 に設定できます。

<ListBox ItemsSource="{Binding MyData}" SelectedIndex="-1"/>

注: 純粋な xaml でこれを実行したいと考えています。コード ビハインドのアイデアがある場合は、気にしないでください。

残念ながら、XAML ですべてを行うことはできません...通常はコード ビハインドを回避できますが、コンバーター、マークアップ拡張機能、または添付プロパティを記述する必要があります。

于 2009-09-09T10:12:15.493 に答える
2
<ListBox SelectioMode="Single" SelectedIndex="-1"/>
于 2009-09-09T10:43:23.290 に答える
1

ここで同じ問題。誰かが「クリーンな」解決策を見つけましたか?
問題はここでも同じで、一連のトリガーが実行されます。

明らかな解決策/修正:

  1. XAMLからSelectionChangedイベントハンドラーを削除します
  2. InitializeComponentsがリストボックスをロードした後、コンストラクターにハンドラーを追加します。
于 2010-04-05T16:00:04.147 に答える
1

SelectedIndex は探しているプロパティですか? それとも、私はあなたの主張を理解していないかもしれません...

于 2009-09-09T10:12:31.380 に答える
-2

空白のアイテムを追加します。

于 2009-09-09T17:59:25.393 に答える