Josh
Josh

Reputation: 657

Pass a SQL query result into multiple textboxes

I have a datagrid that is populated by a SQL server. I am trying to select a row from the list of entries and enter them into textboxes outside the grid. I can't seem to find a way to convert the query result into manageable data, other than to populate the grid.

C#

MoviesEntities dataEntities = new MoviesEntities();
ObjectQuery<MovieTable> _movies = dataEntities.MovieTables;

var query =
    from MovieTable in _movies
    where MovieTable.Title == MMEM.MovieTitle
    select MovieTable.id;
    string result = Convert.ToString(query); //or something??

XAML:

<Window x:Class="MovieApp.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" 
    Height="650" 
    Width="525"
    ResizeMode="NoResize"
    WindowStartupLocation="CenterScreen"
    xmlns:vm="clr-namespace:MovieApp">
<Window.Resources>
    <vm:MovieAppViewModel x:Key="MovieAppViewModel"/>
</Window.Resources>
<StackPanel x:Name="RootStackPanel" DataContext="{StaticResource MovieAppViewModel}">
    <Grid HorizontalAlignment="Center" Height="99" Width="440">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="Auto"/>
            <ColumnDefinition Width="Auto"/>
            <ColumnDefinition Width="Auto"/>
            <ColumnDefinition Width="Auto"/>
        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="Auto"/>
        </Grid.RowDefinitions>
        <TextBlock Grid.Column="0" Text="Movie Title" Margin="30 0 30 0" HorizontalAlignment="Center" FontWeight="Heavy"/>
        <TextBlock Grid.Column="1" Text="Rating" Margin="30 0 30 0"  HorizontalAlignment="Center" FontWeight="Heavy"/>
        <TextBlock Grid.Column="2" Text="Stars" Margin="30 0 30 0" HorizontalAlignment="Center" FontWeight="Heavy"/>
        <TextBlock Grid.Column="3" Text="Release Year"  Margin="30 0 30 0" HorizontalAlignment="Center" FontWeight="Heavy"/>
        <TextBox Grid.Column="0" TextAlignment="Center" Text="{Binding MMEM.MovieTitle}"  IsEnabled="{Binding MMEM.IsEditable}" Grid.Row="1" MaxLength="50" Width="100"/>
        <TextBox Grid.Column="1" TextAlignment="Center" Text="{Binding MMEM.Rating}"  IsEnabled="{Binding MMEM.IsEditable}" Grid.Row="1" MaxLength="5" Width="55"/>
        <TextBox Grid.Column="2" TextAlignment="Center" Text="{Binding MMEM.Stars}"  IsEnabled="{Binding MMEM.IsEditable}" Grid.Row="1" MaxLength="5" Width="20"/>
        <TextBox Grid.Column="3" TextAlignment="Center" Text="{Binding MMEM.ReleaseYear}"  IsEnabled="{Binding MMEM.IsEditable}" Grid.Row="1" MaxLength="20" Width="100"/>
    </Grid>
    <Button Content="Edit Mode" Command="{Binding ToggleCommand}"/>
    <DataGrid 
        Width="Auto" 
        SelectionMode="Extended" 
        IsReadOnly="True" 
        AutoGenerateColumns="False" 
        ItemsSource="{Binding MMLM.MoviesList}"
        DataContext="{StaticResource MovieAppViewModel}">
        <DataGrid.Columns>
            <DataGridTextColumn Width="200" Header="Title" Binding="{Binding Title}"/>
            <DataGridTextColumn Width="100" Header="Rating" Binding="{Binding Rating}"/>
            <DataGridTextColumn Width="100" Header="Stars" Binding="{Binding Stars}"/>
            <DataGridTextColumn Width="93" Header="Release Year" Binding="{Binding ReleaseYear}"/>
        </DataGrid.Columns>
    </DataGrid>
</StackPanel>

I am under the assumption that there is a more efficient way than parsing the row into strings and populating the textboxes, but at this point I'll take what I can get!

Thanks for any input!!!!

Upvotes: 1

Views: 489

Answers (1)

paparazzo
paparazzo

Reputation: 45096

Just name thedatagrid eg masterDG

Then in the detail

 Binding ElementName=masterDG, path=SelecedItem.Title 

Upvotes: 1

Related Questions