我想使用gridview和文本框在WPF中创建一个usercontrol。
我想在gridview中选择行时显示文本框中的数据。
答案 0 :(得分:2)
请按以下方式找到解决方案:
UserControl XAML代码
<UserControl x:Class="WpfApplication1.DataGridControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="15*"></RowDefinition>
<RowDefinition Height="85*"></RowDefinition>
</Grid.RowDefinitions>
<TextBox x:Name="txtvalue" Width="100" Grid.Row="0" />
<DataGrid x:Name="dg" SelectionChanged="dg_SelectionChanged" ItemsSource="{Binding Path=.}" Grid.Row="1" IsReadOnly="True" />
</Grid>
</UserControl>
后面的用户控制代码
using System;
using System.Data;
using System.Windows.Controls;
namespace WpfApplication1
{
/// <summary>
/// Interaction logic for DataGridControl.xaml
/// </summary>
public partial class DataGridControl : UserControl
{
public DataGridControl()
{
InitializeComponent();
DataTable dt = new DataTable();
dt.Columns.Add("Column1");
dt.Columns.Add("Column2");
dt.Rows.Add("Ashok", "Rathod");
dt.Rows.Add("Paresh", "Jadav");
dt.Rows.Add("Keyur", "Kamdar");
dt.AcceptChanges();
dg.DataContext = dt;
}
private void dg_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
DataRowView obj = dg.SelectedItem as DataRowView;
if(obj != null)
{
txtvalue.Text=Convert.ToString(obj.Row["Column1"]);
}
}
}
}
MainWindow Xaml使用usercontrol
<Window x:Class="WpfApplication1.UserControlMainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:uc="clr-namespace:WpfApplication1"
Title="UserControlMainWindow" Height="300" Width="300">
<Grid>
<uc:DataGridControl />
</Grid>
</Window>
答案 1 :(得分:0)
这是一个非常基本的要求说明。您可以尝试创建用户控件并添加gridview控件和直接的文本框。 然后使用gridview的SelectedIndexChange事件选择并显示所选行中的值。一旦你尝试这个,如果它失败了,发布代码。