Ich bin ein ListView
von einer Linq to SQL-Abfrage-Liste mit diesem bevölkern:Beziehen eines Wertes aus einer Listview, die mit einer Linq to SQL-Abfrage bevölkert war
private void loademployeelist()
{
dbml.hrdbDataContext listpeople = new dbml.hrdbDataContext();
var q = from p in listpeople.EmpIDs
join pi in listpeople.EmpBasicFiles on p.EmpID1 equals pi.EBF_EmpID
where pi.EBF_Active == activeornot
orderby p.LastName
select new classes.Employeeselected() { FirstName = p.FirstName, LastName = p.LastName, empid=p.EmpID1};
foreach (var item in q)
{
lb_active_employee_names.Items.Add(new { LastName = item.LastName, FirstName = item.FirstName, empid = item.empid });
}
}
Das Problem ist, dass ich will nur den gewählten Wert der empid
sein. Ich habe überall hingeschaut und finde keinen Weg, diesen Wert zu bekommen. Der Code, um den Wert zu erhalten, ist dies:
Ich bekomme immer einen Fehler beim Ausführen des Programms, nachdem ich es ausgewählt habe. Ich habe versucht, den Fehler nachzuschlagen, aber ich verirre mich in dieser riesigen Wildnis. Ich denke, ich verstehe begrifflich, was vor sich geht, aber ich weiß nicht, wie ich es beheben soll. Ich bin immer noch sehr neu in C#/Visual Studio. Hier
ist der Fehler:
An exception of type 'System.InvalidCastException' occurred in 6DegreesGateway.exe but was not handled in user code
Additional information: Unable to cast object of type '<>f__AnonymousType103[System.String,System.String,System.Decimal]' to type 'System.Windows.Controls.ListViewItem'.
Meine XAML sieht wie folgt aus:
<ListView x:Name="lb_active_employee_names" HorizontalAlignment="Left" Height="135" Margin="10,148,0,0" VerticalAlignment="Top" Width="365" Grid.Column="1" Grid.Row="1" Loaded="listBox_Loaded" SelectionChanged="lb_active_employee_names_SelectionChanged" SelectedItem="{Binding Path=empid}">
<ListView.View>
<GridView>
<GridViewColumn Header="Last Name" DisplayMemberBinding="{Binding LastName}" />
<GridViewColumn Header="First Name" DisplayMemberBinding="{Binding FirstName}" />
<GridViewColumn Header="Employee ID" DisplayMemberBinding="{Binding empid}" />
</GridView>
</ListView.View>
</ListView>
Ich habe versucht, Überprüfung, was andere getan haben, Binden oder Erstellen einer Klasse usw. Aber ich werde immer verwirrter.
Was meinen Sie mit "Ich möchte nur den ausgewählten Wert der Empid sein?" Was versuchst du mit dem 'Empid' zu tun? –
Werfen Sie einen Blick auf diese ähnliche Frage. Ich denke, die Antwort wird helfen. http://stackoverflow.com/questions/15091400/get-single-listview-selecteditem –
@JasonBoyd Ich werde eine andere Abfrage von Empid auf einer anderen Tabelle ausführen. –