0
システムにあるすべてのシリアルポート名を保持するコンボボックスがあります。 アイテムをロードして選択するためのバインディングが正常に動作しているようです。問題は、リストを(リフレッシュボタンを介して)変更するアクションを実行したときに、コンボボックスが更新リストを反映するが、選択されたテキストが更新前のものではなくなった(選択された値が変更されたものではない) 。 空きスペースがあります。 [添付写真の比較を参照] テキストの別のバインディングを排他的に追加しようとしましたが、同じ結果が出ました。 何が間違っている可能性がありますか? XAMLコードC#WPF MVVMコンボボックスのテキスト値
<ComboBox x:Name="cbxPorts" ItemsSource="{Binding PortNames}"
Text="{Binding cbxPortTextContent, Mode=TwoWay}"
SelectedItem="{Binding SelectedComPort, Mode=TwoWay}"
HorizontalAlignment="Left" Margin="10,23,0,0" VerticalAlignment="Top"
Width="119"/>
モデルコード
// Property for Com Port Selection
public String SelectedComPort
{
get { return selectedComPort; }
set
{
if (value != null)
{
selectedComPort = value;
Properties.Settings.Default.ComPort = selectedComPort;
Properties.Settings.Default.Save();
}
else
{
}
}
}
public String CbxPortTextContent
{
get { return cbxPortTextContent; }
set
{
cbxPortTextContent = value;
OnPropertyChanged("CbxPortTextContent");
}
}
これは最初の使用可能なWPF MVVMプロジェクトです。 すべての助け/提案は高く評価されます
私はあなたがPORTNAMESコンストラクタでcbxPortsを参照することができますどのように表示されないのですか? 私はコントロールが直接アクセスできるとは思わなかった。 明確にすることはできますか? ctor() { cbxPorts.ItemsSource = new List(); } –
user1094416
これは、コントロールにバインドされているPortNamesプロパティです。 public ObservableCollection PortNames { get {return portNames; } を設定します。 { portNames = value; OnPropertyChanged( "PortNames"); } } –
user1094416