verwendet, wie man Text von den Textfeldern hinzufügt und ihn zu Datagrid hinzufügt, das MVVM Wpf verwendet?wie man Text aus Textfeldern hinzufügt und es zu DataGrid hinzufügt, das MVVM Wpf
Code:
public class GtlS4Model : INotifyPropertyChanged
{
private Double sNo;
private Double deliveryNo;
private Double srNo;
private Double custPartNo;
private Double binS4Label;
private Double masterData;
public double SNo
{
get
{
return sNo;
}
set
{
sNo = value;
OnPropertyChanged("SNo");
}
}
public double DeliveryNo
{
get
{
return deliveryNo;
}
set
{
deliveryNo = value;
OnPropertyChanged("Delivery_No");
}
}
public double SrNo
{
get
{
return srNo;
}
set
{
srNo = value;
OnPropertyChanged("SrNo");
}
}
public double CustPartNo
{
get
{
return custPartNo;
}
set
{
custPartNo = value;
OnPropertyChanged("CustPartNo");
}
}
public double BinS4Label
{
get
{
return binS4Label;
}
set
{
binS4Label = value;
OnPropertyChanged("BinS4Label");
}
}
public double MasterData
{
get
{
return masterData;
}
set
{
masterData = value;
OnPropertyChanged("MasterData"); }
}
public event PropertyChangedEventHandler PropertyChanged;
private void OnPropertyChanged (string propertyName)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
}
Ansichtsmodell jetzt:
public class GtlS4ViewModel
{
public ObservableCollection<GtlS4Model> gtls4Label { get; set; }
DataTable dt;
public void addTables()
{
dt.Columns.Add("S No.");
dt.Columns.Add("Delivery Note");
dt.Columns.Add("Sr No.");
dt.Columns.Add("Customer Part No.");
dt.Columns.Add("Bin S-4 Label");
dt.Columns.Add("Result");
var row1 = this.dt.NewRow();
var row2 = this.dt.NewRow();
var row3 = this.dt.NewRow();
var row4 = this.dt.NewRow();
var row5 = this.dt.NewRow();
var row6 = this.dt.NewRow();
row1["S No."] = 1;
row2["Delivery Note"] = 123456;
row3["Sr No."] = 1235143;
row4["Customer Part No."] = 56487564;
row5["Bin S4 Label"] = 5555656;
row6["Result"] = 6556456454564564;
this.dt.Rows.Add(row1);
this.dt.Rows.Add(row2);
this.dt.Rows.Add(row3);
this.dt.Rows.Add(row4);
this.dt.Rows.Add(row5);
this.dt.Rows.Add(row6);
}
public GtlS4ViewModel()
{
dt = new DataTable();
gtls4Label = new ObservableCollection<GtlS4Model>
{
new GtlS4Model {SNo = 1, DeliveryNo= 1325647, SrNo = 1515151, CustPartNo = 32156444, BinS4Label = 56456456, MasterData = 86864564564},
};
}
}
VIEW:
<Window x:Class="Gtl_S4_Validator.Views.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:Gtl_S4_Validator.Views"
xmlns:vm="clr-namespace:Gtl_S4_Validator.ViewModel"
mc:Ignorable="d"
Title="Window1" Height="720" Width="525">
<Window.Resources>
<vm:GtlS4ViewModel x:Key="ViewModelMain"/>
</Window.Resources>
<Grid Margin="-4,0,-4,-1">
<TextBox x:Name="txtSno" HorizontalAlignment="Left" Height="24" Margin="97,23,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="82" RenderTransformOrigin="0.666,-0.434"/>
<TextBox x:Name="txtDeliveryNo" HorizontalAlignment="Left" Height="21" Margin="97,61,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="82"/>
<Label x:Name="label" Content="S. No." HorizontalAlignment="Left" Margin="10,21,0,0" VerticalAlignment="Top"/>
<Label x:Name="label1" Content="Delivery Note" HorizontalAlignment="Left" Margin="10,59,0,0" VerticalAlignment="Top"/>
<Label x:Name="label2" Content="Sr. No." HorizontalAlignment="Left" Margin="10,100,0,0" VerticalAlignment="Top"/>
<Label x:Name="label3" Content="Customer Part no." HorizontalAlignment="Left" Margin="253,23,0,0" VerticalAlignment="Top"/>
<TextBox x:Name="txtSrNo" HorizontalAlignment="Left" Height="23" Margin="97,100,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="82"/>
<TextBox x:Name="txtCustPartNo" HorizontalAlignment="Left" Height="24" Margin="376,23,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="91"/>
<Label x:Name="label4" Content="Bin S-4 Label" HorizontalAlignment="Left" Margin="253,59,0,0" VerticalAlignment="Top"/>
<TextBox x:Name="txtBinS4Label" HorizontalAlignment="Left" Height="23" Margin="376,59,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="91"/>
<TextBox x:Name="txtMasterData" HorizontalAlignment="Left" Height="23" Margin="376,100,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="91" RenderTransformOrigin="0.337,0.445"/>
<Label x:Name="label5" Content="Master Data" HorizontalAlignment="Left" Margin="253,97,0,0" VerticalAlignment="Top"/>
<Button x:Name="btnValidate" Content="Validate" HorizontalAlignment="Left" Height="27" Margin="182,141,0,0" VerticalAlignment="Top" Width="131" Click="btnValidate_Click"/>
<DataGrid x:Name="GtlS4DataGrid" HorizontalAlignment="Left" Height="408" Margin="10,203,0,0" VerticalAlignment="Top" Width="505" ItemsSource="{Binding gtls4Label}" CanUserAddRows="True">
<DataGrid.Columns>
<DataGridTextColumn Header="S No" Binding="{Binding SNo}"/>
<DataGridTextColumn Header="Delivery Note" Binding="{Binding Delivery Note}" />
<DataGridTextColumn Header="Sr No" Binding="{Binding Sr No}" />
<DataGridTextColumn Header="Customer Part No." Binding="{Binding CustomerPartNo }" />
<DataGridTextColumn Header="Bin S4 Label" Binding="{Binding BinS4Label}" />
<DataGridTextColumn Header="Result" Binding="{Binding MasterData}" />
</DataGrid.Columns>
</DataGrid>
<Button x:Name="btnExport" Content="Export" HorizontalAlignment="Left" Margin="182,616,0,0" VerticalAlignment="Top" Width="75"/>
<Button x:Name="btnClear" Content="Clear" HorizontalAlignment="Left" Margin="283,616,0,0" VerticalAlignment="Top" Width="75"/>
</Grid>
</Window>
ich nicht bekommen, wie kann ich es falsch zu tun, aber es funktioniert nicht hinzufügen irgendwelche Daten von den Knöpfen auch ich bin zu dieser Umwelt völlig neu.
Jede Hilfe wird sehr geschätzt.
Können Sie bitte klarstellen, was Sie eigentlich wollen? Sie haben ein Textfeld für jede Spalte im Raster. Soll das Textfeld die entsprechende Spalte der aktuell ausgewählten Zeile anzeigen/aktualisieren? Möchten Sie, dass die Textfelder dem ViewModel DataTable dt eine Zeile hinzufügen? Apropos, diese DataTable sieht für mich völlig unbenutzt aus. Was ist der Punkt? – ashbygeek
Ich möchte nur eine neue Zeile für die Daten, die ich in die Textfelder eingeben und auf dem Raster anzeigen –
ja, die Datentabelle ist völlig unbenutzt –