Ich kann diese Frage nicht richtig stellen. Ich habe es in 3 verschiedenen Foren gefragt und google seit ungefähr einer Woche gesucht, und nichts. Lassen Sie mich es so versuchen Sie es erneut hier und sehen, ob es eine andere Art und Weise zu fragen hilft ihr mir helfen ...WPF C# ComboBox Wert anzeigen
WPF C# MetroWindow MahApps.Metro Fenster mit - Combobox - Staatliche Codes (50 US-Bundesstaaten) Ich habe einen Datensatz und zog den Datensatz in das Kombinationsfeld in XAML. Hier ist die XAML
<ResourceDictionary>
<CollectionViewSource x:Key="StatesViewSource"
Source="{Binding States, Source={StaticResource PRx}}" />
</ResourceDictionary>
Im Inneren des GRID ich den Datenkontext gesetzt:
<Grid DataContext="{StaticResource StatesViewSource}">
Dann wird die ComboBox
<ComboBox x:Name="CbState"
SelectedValuePath="StateCode"
ItemsSource="{Binding}"
DisplayMemberPath="StateCode" />
Wenn nun, dass es und ich höre, es funktioniert. Ich bekomme die State Codes in der Combobox; Das ist jedoch nicht das Problem oder das Problem, das ich gelöst habe. Was ich tun muss, ist die Datenbank abzufragen, den Patienten zu finden und die Adresse in das Fenster zurückzugeben. Jedes Feld wird mit Ausnahme der Combobox im Fenster angezeigt. Es wird immer der erste Status in der Liste - AL - Wert verwendet, obwohl der Statuscode für den Patienten MA ist.
Also, SQL funktioniert. Combobox zieht Werte. Aber ich kann die Combobox nicht dazu bringen, auf MA voreingestellt zu werden, wie es über das SQL zurückgegeben wird.
Hier ist ein C# -Code, den ich auch benutze.
private void ReturnPatient()
{
var patIdReturn = TxtPatId.Text;
var patSiteId = TxtTSiteCode.Text;
var preSql = Settings.Default.GetPatientProfile;
var param = " @p1 = '" + patIdReturn + "', @p2 = '" + patSiteId + "';";
var sql = preSql + param;
var connectionString = Settings.Default.Dbconn;
using (var conn = new SqlConnection(connectionString))
using (var cmd = new SqlCommand(sql, conn))
{
try
{
conn.Open();
var reader = cmd.ExecuteReader();
while (reader.Read())
{
TxtFirstName.Text = reader[0] as string;
TxtMi.Text = reader[1] as string;
TxtLastName.Text = reader[2] as string;
TxtLegacy.Text = reader[3] as string;
DobPicker.SelectedDate = reader[4] as DateTime? ?? new DateTime();
TxtPhone.Text = reader[5] as string;
TxtAddr1.Text = reader[6] as string;
TxtAddr2.Text = reader[7] as string;
TxtCity.Text = reader[8] as string;
TbState.Text = reader[9] as string;
// trying a tbox instead of combobox, but this is where I want the Combobox for State.
TxtZip.Text = reader[10] as string;
//break for single row or you can continue if you have multiple rows...
break;
}
Log.Debug("Command executed and reader completed for ReturnPatient()");
}
catch (SqlException ex)
{
// error handling
}
finally
{
// logging
}
}
}
ich versucht habe CbState.SelectedItem, CbState.SelectedValue, CbState.DisplayMemeber, etc ...
Bitte, ich weiß, dass dies möglich sein muss. BITTE HILFE
Mit freundlichen Grüßen,
Lost In ComboBox Hölle :)
Einige Hinweise: Überprüfen Sie, was 'reader [9]' tatsächlich ergibt. Es ist eine schlechte Übung, hier numerische Offsets zu verwenden, weil Sie Probleme bekommen, wenn Ihr zugrunde liegendes qu oder die Tabellenstruktur ändert sich. Überprüfen Sie diesen Link: http://stackoverflow.com/questions/3391195/set-selecteditem-of-wpf-combobox – sprinter252