xaml ファイルに 2 つのコンボボックスがあります。基本的に、xaml ファイルでコンボボックスをダブルクリックすると、xaml.cs ファイルにombobox_selectionchanged イベントが作成されます。私は次のようにしました:
ビュー クラス:
<ComboBox Height="23" ItemsSource="{Binding BusRateList}" SelectedItem="{Binding SelectedBusRateItem}" SelectedIndex="2" Name="comboBox2" SelectionChanged="comboBox2_SelectionChanged" />
<ComboBox Height="23" ItemsSource="{Binding BaudRateList}" SelectedItem="{Binding SelectedBaudRateItem}" SelectedIndex="6" Name="comboBox3" SelectionChanged="comboBox3_SelectionChanged" />
View.xaml.cs ファイル:
private void comboBox2_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
int id = Convert.ToInt32(comboBox2.SelectedIndex);
int speed = mI2c._busRate[id]; //mI2C is object of viewmodel class
sendBuf[0] = Convert.ToByte((speed & 0xFF000000) >> 24);
sendBuf[1] = Convert.ToByte((speed & 0x00FF0000) >> 16);
sendBuf[2] = Convert.ToByte((speed & 0x0000FF00) >> 8);
sendBuf[3] = Convert.ToByte(speed & 0x000000FF);
cmd = (256 << 8 | 0x00);
mCom.WriteInternalCommand(cmd, 4, ref sendBuf);
ReadBusAndBaudRate();
}
private void comboBox3_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
int id = Convert.ToInt32(comboBox3.SelectedIndex);
int speed = mI2c._baudRate[id]; //mI2C is object of viewmodel class
sendBuf[0] = Convert.ToByte((speed & 0xFF000000) >> 24);
sendBuf[1] = Convert.ToByte((speed & 0x00FF0000) >> 16);
sendBuf[2] = Convert.ToByte((speed & 0x0000FF00) >> 8);
sendBuf[3] = Convert.ToByte(speed & 0x000000FF);
cmd = (256 << 8 | 0x00);
mCom.WriteInternalCommand(cmd, 4, ref sendBuf);
ReadBusAndBaudRate();
}
public void ReadBusAndBaudRate()
{
int speed = 100;
// Some Code
textBox1.Text = speed.ToString();
textBox2.Text = speed.ToString();
// Update message in Output Window as Effective Baud Rate
}
ViewModel クラス:
public ObservableCollection<int> _busRate;
public ObservableCollection<int> BusRateList
{
get { return _busRate; }
set
{
_busRate = value;
NotifyPropertyChanged("BusRateList");
}
}
private int _selectedBusRate;
public int SelectedBusRateItem
{
get { return _selectedBusRate; }
set
{
_selectedBusRate = value;
NotifyPropertyChanged("SelectedBusRateItem");
}
}
public ObservableCollection<int> _baudRate;
public ObservableCollection<int> BaudRateList
{
get { return _baudRate; }
set
{
_baudRate = value;
NotifyPropertyChanged("BusRateList");
}
}
private int _selectedBaudRate;
public int SelectedBaudRateItem
{
get { return _selectedBaudRate; }
set
{
_selectedBaudRate = value;
NotifyPropertyChanged("SelectedBaudRateItem");
}
}
ビューモデル コンストラクターの両方のコンボボックスに約 8 項目を追加しました。
上記のプロパティを使用して、viewmodel クラスでコンボボックスの選択変更イベントを実行し、.cs ファイルで実行されたすべてのステートメントを実行する必要があります。
助けてください!!!