サーバーからアイテムが取り込まれた ComboBox を使用する WPF アプリケーションがあります。コントロールは現在のセットアップでうまく機能しますが、解決したい小さな問題があります。DropDown ボタンをクリックしてアイテムのリストを開くと、マウスがそのアイテムのテキストの上にある場合にのみアイテムを選択できます。マウスを行の上に置き、テキストの上に直接置かない場合、コントロールはその行を選択する必要があることを認識していないようです。アイテムだけでなく、現在の行にフォーカスを設定する方法はありますか?
編集
コンボ ボックスは、クライアントとサーバー間のネットワーク転送を処理するクラスから派生した UserControl に格納されます。XAML はコントロールを作成して名前を割り当てるだけで、コード ビハインドはすべてのロジックを実行します。この場合、サーバーはコンボボックスに使用される情報を送信し、以下に示すスニペットで、テキスト項目を含む XML を取得して、それらをコントロール自体に割り当てます。これはすべてうまくいきますが、問題はクライアントがアイテムを選択しようとするときです。マウスがテキストの上にない限り、ComboBox は登録されません。マウスがテキストと同じ行の上にある限り、ComboBox がアイテムを選択するようにしたいと思います。
XAML
<local:Control x:Class="ControlLibrary.ComboBox"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:ControlLibrary" >
<ComboBox Name="comboBox" FontWeight="Bold" />
</local:Control>
C#
XmlNodeList nodelist = xmlNode.SelectNodes("Items");
comboBox.Items.Clear();
foreach (XmlNode node in nodelist)
{
ComboBoxItem tempItem = new ComboBoxItem()
{
Content = node.Attributes["text"].Value
};
comboBox.Items.Add(tempItem);
}
アドバイスをいただきありがとうございます。