0

私はこれらの両方を試しました:

comboBoxToHour.SelectedValue = comboBoxToHour.Items.IndexOf("11");
comboBoxToHour.SelectedIndex = comboBoxToHour.Items.IndexOf("11");

...そしてどちらも機能せず、実際、これも機能しません。

comboBoxFromHour.SelectedValue = "11";

...これも:

comboBoxFromHour.SelectedIndex = 12;

...私は本当に奇妙だと思います。

アップデート

私はロスの提案した修正を試しましたが、これで:

if (App.roamingSettings.Values.ContainsKey("FromMonthSection1"))
{
    if (comboBoxFromMonth.Items != null)
    {
        var item = comboBoxFromMonth.Items.FirstOrDefault(p => (p as ComboBoxItem).Content.ToString() == App.roamingSettings.Values["FromMonthSection1"].ToString());

...「オブジェクト参照がオブジェクトのインスタンスに設定されていません」というメッセージが表示されます。最後の行に。

更新2

結局のところ、簡単な方法が機能します。これが判明しました:

if (App.roamingSettings.Values.ContainsKey("FromMonthSection1"))
{
    if (comboBoxFromMonth != null)
    {
        var item = comboBoxFromMonth.Items.FirstOrDefault(p => (p as ComboBoxItem).Content.ToString() == App.roamingSettings.Values["FromMonthSection1"].ToString());
        if (item != null)
        {
            comboBoxFromMonth.SelectedItem = item;
        }
    }
}

...失敗します。「System.NullReferenceExceptionはユーザーコードによって処理されませんでした。HResult=-2147467261メッセージ=オブジェクト参照がオブジェクトのインスタンスに設定されていません。

...アイテムに割り当てる行。

ただし、これは次のとおりです。

if ((App.roamingSettings.Values.ContainsKey("FromMonthSection1")) &&
    (!string.IsNullOrWhiteSpace(App.roamingSettings.Values["FromMonthSection1"].ToString())))
{
    comboBoxFromMonth.SelectedItem = App.roamingSettings.Values["FromMonthSection1"].ToString();
}

...動作します。

4

3 に答える 3

3

おそらくあなたFindStringはインデックスをトレーニングするために使用したいと思うでしょう:

comboBoxToHour.FindString("Name of a item")

例えば

comboBoxToHour.DisplayMember = "Name";
comboBoxToHour.ValueMember = "Value";
comboBoxToHour.DataSource = aList; 
comboBoxToHour.SelectedIndex = comboBoxToHour.FindString("Name of a item")

または、コンボボックスをデータソースにバインドしたので、SelectedValueを使用できます。

comboBoxToHour.SelectedValue = "5";
于 2012-12-19T01:54:12.367 に答える
1

ビューモデルを使用していないように見えるため、.ItemsはComboBoxItemのリストです。基本的に、コンボボックスアイテムを文字列と比較するように求めていますが、文字列は見つかりません。そのため、選択したインデックスが-1に選択されます。

このコードはあなたが望むことを達成することができます:-

var item = comboBoxToHour.Items.FirstOrDefault(p => (p as ComboBoxItem).Content.ToString() == "4");
if (item != null)
{
    comboBoxToHour.SelectedItem = item;
}

うまくいけば、それが役立つでしょう。

于 2012-12-20T11:26:21.130 に答える
1

コンボボックスの最初のアイテムを表示するには:

List ModeOptions = new List(){"--Select Mode--"、 "Driving"、 "Walking"、 "Transit"};

comboBoxOptions.ItemsSource = ModeOptions;

comboBoxOptions.SelectedItem = ModeOptions [0];

于 2015-06-02T17:55:58.453 に答える