Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 单击事件时将wpf datagrid强制转换为另一个usercontrol_C#_Wpf_Datagrid - Fatal编程技术网

C# 单击事件时将wpf datagrid强制转换为另一个usercontrol

C# 单击事件时将wpf datagrid强制转换为另一个usercontrol,c#,wpf,datagrid,C#,Wpf,Datagrid,我试图使用click event som add in datagrid列将wpf userList(用户控件)中的数据网格强制转换为userUpdate(用户控件) 更新视图显示来自datagrid的信息,但当我尝试使用sql query by id更新信息时,查询找不到id 即时通讯使用MVVM 这是代码 private void Update_Click(object sender, RoutedEventArgse) { update = new Upda

我试图使用click event som add in datagrid列将wpf userList(用户控件)中的数据网格强制转换为userUpdate(用户控件)

更新视图显示来自datagrid的信息,但当我尝试使用sql query by id更新信息时,查询找不到id

即时通讯使用MVVM

这是代码

    private void Update_Click(object sender, RoutedEventArgse)
    {
        update = new UpdateUser();
        var row = userList.SelectedItem;
        var user = (Users)row;
        update.id.Content = user.id.ToString();
        btnAdd.Children.Clear();
        gridData.Children.Clear();
        gridData.Children.Add(update);

    }
还有我的数据网格XAML

<DataGrid   x:Name="userList" AutoGenerateColumns="False" IsReadOnly="True" ItemsSource="{Binding Path=UserList}"   Background="#FFF" >
            <DataGrid.Columns>
                <DataGridTextColumn Header="ID" Width="*" Binding="{Binding id}" />
                <DataGridTextColumn Header="First name" Width="*" Binding="{Binding Firstname}" />
                <DataGridTextColumn Header="Last name" Width="*" Binding="{Binding Lastname}" />
                <DataGridTextColumn Header="Username" Width="*" Binding="{Binding Username}" />
                <DataGridTextColumn Header="Email" Width="*" Binding="{Binding Email}" />
                <DataGridTextColumn Header="Corporation" Width="*" Binding="{Binding CorName}" />
                <DataGridTemplateColumn>
                    <DataGridTemplateColumn.CellTemplate>
                        <DataTemplate>
                            <Button x:Name="Update" Background="#FF17A2B8"  BorderBrush="#FF17A2B8" Foreground="White" Click="Update_Click" >Update</Button>
                        </DataTemplate>
                    </DataGridTemplateColumn.CellTemplate>
                </DataGridTemplateColumn>
                <DataGridTemplateColumn>
                    <DataGridTemplateColumn.CellTemplate>
                        <DataTemplate>
                            <Button x:Name="btnDelete" Background="#FFDA0202" BorderBrush="#FFDA0202" Foreground="White" Click="btnDelete_Click">Delete</Button>
                        </DataTemplate>
                    </DataGridTemplateColumn.CellTemplate>
                </DataGridTemplateColumn>

            </DataGrid.Columns>
        </DataGrid>
    

更新
删除
这是我的更新用户控件

<Grid Grid.Row="1"  Background="White">
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="3*" />
        <ColumnDefinition Width="5*" />
        <ColumnDefinition Width="3*" />
    </Grid.ColumnDefinitions>
    <Grid.RowDefinitions>
        <RowDefinition  Height="auto"/>
        <RowDefinition  Height="auto"/>
        <RowDefinition  Height="auto"/>
        <RowDefinition  Height="auto"/>
        <RowDefinition  Height="auto"/>
        <RowDefinition  Height="auto"/>
        <RowDefinition  Height="auto"/>
        <RowDefinition  Height="auto"/>
        <RowDefinition  Height="auto"/>
        <RowDefinition  Height="auto"/>
        <RowDefinition  Height="*"/>
    </Grid.RowDefinitions>
    <StackPanel Grid.Column="1" Grid.Row="9" Margin="10">
        <TextBox x:Name="fsdName" Style="{StaticResource MaterialDesignOutlinedTextBox}" VerticalAlignment="Top" AcceptsReturn="True" TextWrapping="Wrap"  materialDesign:HintAssist.Hint="First Name"  />
    </StackPanel>
    <StackPanel Grid.Column="1" Grid.Row="1" Margin="10">
        <TextBox x:Name="fName"  Style="{StaticResource MaterialDesignOutlinedTextBox}" VerticalAlignment="Top" AcceptsReturn="True" TextWrapping="Wrap"  materialDesign:HintAssist.Hint="First Name"  />
    </StackPanel>
    <StackPanel Grid.Column="1" Grid.Row="2" Margin="10">
        <TextBox x:Name="lName" Style="{StaticResource MaterialDesignOutlinedTextBox}" VerticalAlignment="Top" AcceptsReturn="True" TextWrapping="Wrap"  materialDesign:HintAssist.Hint="Last Name" />
    </StackPanel>
    <StackPanel Grid.Column="1" Grid.Row="3" Margin="10">
        <TextBox x:Name="username" Text="{Binding Path=CurrentUser.Username,Mode=TwoWay}"  Style="{StaticResource MaterialDesignOutlinedTextBox}" VerticalAlignment="Top" AcceptsReturn="True" TextWrapping="Wrap"  materialDesign:HintAssist.Hint="User Name"  />
    </StackPanel>
    <StackPanel Grid.Column="1" Grid.Row="9" Margin="10">
        <TextBox x:Name="usesdfrname" Style="{StaticResource MaterialDesignOutlinedTextBox}" VerticalAlignment="Top" AcceptsReturn="True" TextWrapping="Wrap"  materialDesign:HintAssist.Hint="User Name"  />
    </StackPanel>
    <StackPanel Grid.Column="1" Grid.Row="4" Margin="10">
        <PasswordBox  x:Name="Password" Style="{StaticResource MaterialDesignOutlinedPasswordBox}"   materialDesign:HintAssist.Hint="Password" BorderBrush="#89000000" />
    </StackPanel>

    <StackPanel Grid.Column="1" Grid.Row="6" Margin="10">
        <TextBox x:Name="Email"  Style="{StaticResource MaterialDesignOutlinedTextBox}" VerticalAlignment="Top" AcceptsReturn="True" TextWrapping="Wrap"  materialDesign:HintAssist.Hint="E-mail" />
    </StackPanel>
    <StackPanel Grid.Column="1" Grid.Row="7" Margin="10">
        <TextBox x:Name="tel"  Style="{StaticResource MaterialDesignOutlinedTextBox}" VerticalAlignment="Top" AcceptsReturn="True" TextWrapping="Wrap"  materialDesign:HintAssist.Hint="Telefon"  />
    </StackPanel>
    <StackPanel  Grid.Column="1" Grid.Row="8"  Margin="10">
        <Button x:Name="Update" Style="{StaticResource MaterialDesignRaisedAccentButton}" ToolTip="Resource name: MaterialDesignRaisedAccentButton" materialDesign:RippleAssist.IsDisabled="True" Content="Update  user" Width="173" Background="#FF1B8524"  Command="{Binding Path=UpdateCommand}" BorderBrush="#FF1B8524" Foreground="#DDFFFFFF" HorizontalAlignment="Center" VerticalAlignment="Center"/>
    </StackPanel>
    <Label Grid.Column="0" x:Name="id" HorizontalAlignment="Left" Grid.Row="1" VerticalAlignment="Top"/>
    <Label Content="{Binding  Path=Message}" Grid.Column="1" HorizontalAlignment="Left" Grid.Row="1" VerticalAlignment="Top"/>
</Grid>

所以我需要从userList控件中的datagrid到userUpdate控件的id,我不知道这是否可能,但请尝试:D


非常感谢

嘿,您是否尝试将名称添加到此ID列?然后通过键入myID从代码中获取它

<DataGridTextColumn x:Name="myID"  Header="ID" Width="*" Binding="{Binding id}" />

是的,我尝试在更新视图中打印system.windows.control.datagridtextcoulmn