C# 单击事件时将wpf datagrid强制转换为另一个usercontrol
我试图使用click event som add in datagrid列将wpf userList(用户控件)中的数据网格强制转换为userUpdate(用户控件) 更新视图显示来自datagrid的信息,但当我尝试使用sql query by id更新信息时,查询找不到id 即时通讯使用MVVM 这是代码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
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