【问题标题】:Wpf Datagrid not showing textbox data?Wpf Datagrid不显示文本框数据?
【发布时间】:2014-04-29 09:47:26
【问题描述】:

您好,我正在使用一个简单的 wpf 应用程序。我的问题是,我想在文本框中写一些东西,当我单击按钮时,它会在数据网格中显示我。 我的代码是:

C#:

public partial class MainWindow : Window
    {
        public ObservableCollection<VLANS> vlan { get; set; }
        public MainWindow()
        {
            InitializeComponent();
            vlan=new ObservableCollection<VLANS>();
            this.DataContext=this;
        }

        private void Button_Click(object sender, RoutedEventArgs e)
        {
            var item = new VLANS();
            item.vlanName = t1.Text;
            //dg.ItemsSource = vlanName;
            dg.ItemsSource = item.vlanName;
        }
    }

    public class VLANS
    {
        public string vlanName { get; set; }

    }
}

XAML:

<Window x:Class="TextboxToDatagridTest.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="100"/>
            <RowDefinition Height="200"/>
        </Grid.RowDefinitions>
        <TextBox
            Name="t1"
            Grid.Row="0"
            Width="150"
            Height="50"
            Margin="200,0,0,0"
            />
        <Button
            Grid.Row="0"
            Width="150"
            Height="40"
            Content="Button" FontSize="25"
            HorizontalAlignment="Left"
            Margin="80,0,0,0" Click="Button_Click">
         </Button>
        <DataGrid
            Name="dg"
            Grid.Row="1">
            <DataGrid.Columns>
                <DataGridTextColumn
                Header="VLAN Name" Binding="{Binding Path=vlanName}"/>

            </DataGrid.Columns>
        </DataGrid>  

    </Grid>
</Window>

快照:

问题出在哪里,如何将文本框数据传输到数据网格?任何帮助都将不胜感激。

【问题讨论】:

    标签: c# wpf xaml datagrid


    【解决方案1】:
     private void Button_Click(object sender, RoutedEventArgs e)
     {
        var item = new VLANS();
        item.vlanName = t1.Text;
    
        vlan.Add(item);
     }
    

    Xaml:

    <DataGrid ItemsSource="{Binding vlan}" AutoGenerateColumns="False" Grid.Row="1">
                <DataGrid.Columns>
                    <DataGridTextColumn
                    Header="VLAN Name" Binding="{Binding Path=vlanName}"/>
    
                </DataGrid.Columns>
    </DataGrid>  
    

    【讨论】:

      猜你喜欢
      • 2019-09-02
      • 2016-03-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-03
      • 2020-02-08
      • 2016-03-15
      • 1970-01-01
      相关资源
      最近更新 更多