私はWPFに取り組んでいます。Visual Studio 2010、.NET 4.0を使用しており、アプリケーションでRadcomboboxを使用しています。3つの文字列が正しく入力されているため、デフォルト値を選択するのに問題があります。コンボボックスのドロップダウンに3つの文字列をロードし始めたときに、最初のインデックス値をデフォルト値として選択したいと思います。これをプログラムで行うにはどうすればよいですか?これはxamlまたはC#で行う必要がありますか?
4 に答える
カウンターをご利用ください。ブール変数を作成し、それを boolDefaultSet と呼びます。デフォルト値の false で初期化する必要があります。
おそらくループを使用して、選択ボックスのオプション ボックスを出力します...そのループ内に、boolDefaultSet が true かどうかを確認するロジックを記述します。そうでない場合は、'selected' 属性を指定してオプション ボックスを出力し、boolDefaultSet を true に設定します。C# で実装できる vb コードを次に示します。
Dim boolDefaultSet as boolean
for i as integer = 0 to 2
if boolDefaultSet then
Response.Write("<option value="+myval+">"+myval+"</option>")
else
Response.Write("<option value="+myval+" selected>"+myval+"</option>")
boolDefaultSet=true
next i
これはMVVMの答えです:
XAML の SelectedIndex プロパティを ViewModel のプロパティにバインドします。
SelectedIndex="{Binding Path=SelectedIndex, Mode=TwoWay}"
ViewModel で、SelectedIndex 値を 1 に設定し、PropertyChangeNotification を呼び出して、ビューが更新を認識できるようにします (これは、ViewModel が INotifyPropertyChanged を実装していることを前提としており、ほとんどの VM 実装はこれを行うために基本クラスを使用します)。
SelectedIndex = 1;
NotifyPropertyChanged("SelectedIndex");
XAML からの SelectedIndex の設定が機能しない場合は、C# コード ロード イベントでそれを実行しようとします。
myName.SelectedIndex = 0;
SelectedValue と SelectedIndex を同時に使用しないでください。競合が発生することが多いためです。xaml から SelectedIndex="0" を削除し、コードから SelectedValue をバインドするプロパティを設定することをお勧めします。
例:
MySelectedValue = MyItemsSource[0];