Я заселять ListView
из Linq в список запросов SQL с этим:Получение значения из ListView, который был населен с Linq для SQL запроса
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 });
}
}
Проблема заключается в том, что я просто хочу, выбранное значение чтобы быть empid
. Я везде искал и не могу найти способ получить эту ценность. Код для получения значения:
private void lb_active_employee_names_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
ListViewItem empsel = (ListViewItem)lb_active_employee_names.SelectedItem;
string test = empsel.GetType().ToString();
MessageBox.Show(test);
}
Я продолжаю получать сообщение об ошибке при запуске программы после ее выбора. Я попытался найти ошибку, но я теряюсь в этой огромной пустыне. Я думаю, что я концептуально понимаю, что происходит, но я не знаю, как это исправить. Я все еще очень новичок в C#/Visual Studio.
Здесь ошибка:
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'.
Моя XAML выглядит следующим образом:
<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>
Я попытался обзор того, что сделали другие, или Переплет создания класса и т.д. Но я все больше запутался.
Что вы подразумеваете под «Я просто хочу, чтобы выбранное значение было эмпирическим»? Что вы пытаетесь сделать с «empid»? –
Взгляните на этот похожий вопрос. Я думаю, что ответ поможет. http://stackoverflow.com/questions/15091400/get-single-listview-selecteditem –
@JasonBoyd Я буду запускать другой запрос от empid на другой таблице. –