最小値用と最大値用の 2 つのコンボボックスを作成しました。私のコードは、このコードを使用して、ユーザーが最大値より大きい最小値、または最小値より小さい最大値を選択しないようにする必要があります。
private void MaxRating_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
switch (MaxRating.SelectedIndex)
{
case 0:
if (MinRating.SelectedIndex > 0)
MinRating.SelectedIndex = 0;
break;
case 1:
if (MinRating.SelectedIndex > 1)
MinRating.SelectedIndex = 1;
break;
case 2:
if (MinRating.SelectedIndex > 2)
MinRating.SelectedIndex = 2;
break;
case 3:
if (MinRating.SelectedIndex > 3)
MinRating.SelectedIndex = 3;
break;
case 4:
if (MinRating.SelectedIndex > 4)
MinRating.SelectedIndex = 4;
break;
}
}
ただし、「if (MinRating.SelectedIndex > 0)」という行でデバッグすると、「NullReferenceException was unhandled by user code」が表示されます。
理由はわかりませんが、MinRating_SelectionChanged の関数もありますが、そのようなものは得られないようです。
この関数から case:0 を削除すると、エラーは発生しないようです。他の機能からでもありません。> を == に置き換えてみましたが、同じことをしているようです。私は混乱しているだけなので、どんな助けも感謝します。
編集:これらの2行を配置するだけの場合
int minrating = MinRating.SelectedIndex;
int maxrating = MaxRating.SelectedIndex;
2行目にエラーが表示されます