> private void GetJobs(object sender, SelectionChangedEventArgs e) > { > ///1. Here's one way, by hard-coding the name of the ListView name and its settings --- > //var SelectedCustomerItem = lvCustomerList.SelectedItem; > //string SelectedCustomerID = lvCustomerList.SelectedValue.ToString(); > > //2. John Fenton's way. Requires proper object types be in place on the collection > //var SelectedCustomerItem=(customer_source)e.AddedItems[0]; > //string SelectedCustomerID=SelectedCustomerItem.custno; > > > //3. Here's another way, assuming a ListView made the call, but without knowing it's name > //ListView lvSender = (ListView) sender; > //string SelectedCustomerID = lvSender.SelectedValue.ToString(); > > if (SelectedCustomerID != null) > { > IEnumerable<job_info> JobRecords = new job_info().GetActiveJobsByCustID(SelectedCustomerID); > lvJobList.ItemsSource = JobRecords; > DetailView.Content = JobRecords; > } > > } > >>
> private void GetCustomerList() > { > DataClasses1DataContext db = new DataClasses1DataContext(); > > var subq = (from p in db.job_info > join c in db.customers on p.cust_num equals c.custno > where p.status == 'A' > orderby c.company > select c.custno).Distinct(); > > IQueryable<customer_source> CustomerList = from a in db.customers > where subq.Contains(a.custno) > select a; > > //Populate the ListView > lvCustomerList.ItemsSource = CustomerList; > > >>
> public partial class job_info > { > public IEnumerable<job_info> GetActiveJobsByCustID(string CustID) > { > DataClasses1DataContext db = new DataClasses1DataContext(); > if (CustID != null) > { > IEnumerable<job_info> JobRecords = from a in db.job_info > where a.cust_num == CustID && a.status == 'A' > orderby a.priority, a.job_num > select a; > return JobRecords; > } > else > { > return null; > } > } > } > >>
> private void GetJobItems(object sender, SelectionChangedEventArgs e) > { > ListView lvSender = (ListView)sender; > string SelectedJobNum = lvSender.SelectedValue.ToString(); > > if (SelectedJobNum != null) > { > IEnumerable<job_item> JobItems = new job_item().GetJobItemsByJobNo(SelectedJobNum); > lvJobItems.ItemsSource = JobItems; > } > } >>
><Window x:Class="wpf2.Window1" > xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" > xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" > Title="Window1" Height="600" Width="800"> > > <Window.Resources> > <DataTemplate x:Key="DetailTemplate"> > <Border Width="300" Height="100" Margin="20" BorderBrush="Aqua" BorderThickness="1" Padding="8"> > <Grid> > <Grid.RowDefinitions> > <RowDefinition/> > <RowDefinition/> > <RowDefinition/> > </Grid.RowDefinitions> > <Grid.ColumnDefinitions> > <ColumnDefinition/> > <ColumnDefinition/> > </Grid.ColumnDefinitions> > <TextBlock Grid.Row="0" Grid.Column="0" Text="Job No:"/> > <TextBlock Grid.Row="0" Grid.Column="1" Text="{Binding Path=job_num}"/> > <TextBlock Grid.Row="1" Grid.Column="0" Text="PO No:"/> > <TextBlock Grid.Row="1" Grid.Column="1" Text="{Binding Path=p_o_num}"/> > <TextBlock Grid.Row="2" Grid.Column="0" Text="Status:"/> > <TextBlock Grid.Row="2" Grid.Column="1" Text="{Binding Path=status}"/> > </Grid> > </Border> > </DataTemplate> ></Window.Resources> > > > <Grid> > <Grid.RowDefinitions> > <RowDefinition Height="Auto"></RowDefinition> > <RowDefinition Height="*"></RowDefinition> > </Grid.RowDefinitions> > <Grid.ColumnDefinitions> > <ColumnDefinition Width="275"></ColumnDefinition> > <ColumnDefinition Width="*"></ColumnDefinition> > </Grid.ColumnDefinitions> > <StackPanel Orientation="Horizontal" Grid.Row="0"> > <TextBox x:Name="txtCustomerFilter" CharacterCasing="Upper" Width="100" Margin="5" KeyUp="ButtonSearch_Click"></TextBox> > <Button x:Name="ButtonSearch" Width="50" Margin="5" Click="ButtonSearch_Click">Search</Button> > </StackPanel> > > <ListView Name="lvCustomerList" HorizontalContentAlignment="Stretch" ScrollViewer.VerticalScrollBarVisibility="Visible" > Grid.Row="1" Background="DarkGray" > SelectedValuePath="custno" SelectionChanged="GetJobs"> > <ListView.ItemTemplate> > <DataTemplate> > <Border Margin="5" BorderThickness="1" BorderBrush="SlateGray" CornerRadius="4" Background="CadetBlue"> > <Grid Margin="3"> > <Grid.RowDefinitions> > <RowDefinition></RowDefinition> > <RowDefinition></RowDefinition> > <RowDefinition></RowDefinition> > <RowDefinition></RowDefinition> > </Grid.RowDefinitions> > <Grid.ColumnDefinitions> > <ColumnDefinition></ColumnDefinition> > </Grid.ColumnDefinitions> > <StackPanel Orientation="Horizontal"> > <TextBlock FontWeight="Bold" Text="{Binding Path=custno}"></TextBlock> > <TextBlock Text="{Binding Path=company}" Margin="5,0,0,0"></TextBlock> > </StackPanel> > <!--<StackPanel Grid.Row="1" Orientation="Horizontal"> <TextBlock>Phone:</TextBlock> <TextBlock Text="{Binding Path=phone}" Margin="5,0,0,0"></TextBlock> </StackPanel> <StackPanel Grid.Row="2" Orientation="Horizontal"> <TextBlock>Fax:</TextBlock> <TextBlock Text="{Binding Path=faxno}" Margin="5,0,0,0"></TextBlock> </StackPanel>--> > </Grid> > </Border> > </DataTemplate> > </ListView.ItemTemplate> > </ListView> > > <StackPanel VerticalAlignment="Top" Grid.Row="1" Grid.Column="1"> > <ListView x:Name="lvJobList" Height="250" VerticalAlignment="Stretch" > SelectedValuePath="job_num" IsSynchronizedWithCurrentItem="True" > SelectionChanged="GetJobItems"> > <ListView.View> > <GridView> > <GridViewColumn Width="100" Header="Job No" DisplayMemberBinding="{Binding Path=job_num}"></GridViewColumn> > <GridViewColumn Width="100" Header="PO No" DisplayMemberBinding="{Binding Path=p_o_num}"></GridViewColumn> > <GridViewColumn Width="100" Header="Ship Date" DisplayMemberBinding="{Binding Path=ship_date}"></GridViewColumn> > </GridView> > </ListView.View> > </ListView> > <ContentControl x:Name="DetailView" ContentTemplate="{StaticResource DetailTemplate}" /> > > <ListView x:Name="lvJobItems" Height="250" VerticalAlignment="Stretch" > SelectedValuePath="job_num" IsSynchronizedWithCurrentItem="True"> > <ListView.View> > <GridView> > <GridViewColumn Width="100" Header="Qty" DisplayMemberBinding="{Binding Path=qty}"></GridViewColumn> > <GridViewColumn Width="100" Header="PartNo" DisplayMemberBinding="{Binding Path=part_no}"></GridViewColumn> > <GridViewColumn Width="100" Header="DwgNo" DisplayMemberBinding="{Binding Path=dwg_no}"></GridViewColumn> > </GridView> > </ListView.View> > </ListView> > </StackPanel> > </Grid> > ></Window> >>