如何在wpf中使用Gridview和Textbox创建用户控件

时间:2014-07-23 04:41:27

标签: wpf wpf-controls wpfdatagrid

我想使用gridview和文本框在WPF中创建一个usercontrol。

我想在gridview中选择行时显示文本框中的数据。

2 个答案:

答案 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事件选择并显示所选行中的值。一旦你尝试这个,如果它失败了,发布代码。