全て
| カテゴリ未分類
| 通常
| 数学
| 投資
| 副業
| 転職・就職
| ブログ
| 株Stock
| VBA
| SharePoint
| REST API
| RenderListDataAsStream
| PowerAutomateDesktop
| Graph API
| PowerApps
| PowerAutomate
| PowerFx
| OfficeScriptオフィススクリプト
| PowerAutomate日時Excel日時相互関係
| PowerShell
| Dataverse
| UiPath
| OneDrive
| LINQ
| VB.NET
| C#.NET
| WPFC#.NET
| Git
カテゴリ:C#.NET
MVVM パターンで DataTable の入力検証を実装するためには、ViewModel 内でデータテーブルを使用し、その中のデータに対する検証を行う必要があります。以下に、MVVM パターンで DataTable の入力検証を行うサンプルコードを示します。 まず、ViewModel クラスを定義します。 ```csharp using System.Collections.ObjectModel; using System.ComponentModel; using System.Data; using System.Windows; using System.Windows.Input; namespace MVVMDataTableValidation.ViewModels { public class MainViewModel : INotifyPropertyChanged { private DataTable dataTable; public MainViewModel() { InitializeDataTable(); AddRowCommand = new RelayCommand(AddRow); SaveCommand = new RelayCommand(Save); } public DataTable DataTable { get { return dataTable; } set { if (dataTable != value) { dataTable = value; OnPropertyChanged(nameof(DataTable)); } } } public ICommand AddRowCommand { get; private set; } public ICommand SaveCommand { get; private set; } private void InitializeDataTable() { dataTable = new DataTable(); dataTable.Columns.Add("Name", typeof(string)); dataTable.Columns.Add("Age", typeof(int)); // Add other columns as needed } private void AddRow(object parameter) { DataRow newRow = dataTable.NewRow(); dataTable.Rows.Add(newRow); } private void Save(object parameter) { // Save the data // Perform validation before saving foreach (DataRow row in dataTable.Rows) { // Perform validation for each row if (string.IsNullOrWhiteSpace(row["Name"].ToString()) || (int)row["Age"] <= 0) { MessageBox.Show("Invalid data. Please correct the errors before saving."); return; } } MessageBox.Show("Data saved successfully!"); } public event PropertyChangedEventHandler PropertyChanged; protected virtual void OnPropertyChanged(string propertyName) { PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } } } ``` 次に、View (UI) の XAML を作成します。 ```xml <Window x:Class="MVVMDataTableValidation.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="clr-namespace:MVVMDataTableValidation.ViewModels" Title="MVVM DataTable Validation" Height="300" Width="400" DataContext="{Binding Source={StaticResource Locator}, Path=MainViewModel}"> <Grid> <DataGrid ItemsSource="{Binding DataTable}" AutoGenerateColumns="True" Margin="10"/> <StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Bottom" Margin="0,10"> <Button Content="Add Row" Command="{Binding AddRowCommand}" Margin="5"/> <Button Content="Save" Command="{Binding SaveCommand}" Margin="5"/> </StackPanel> </Grid> </Window> ``` このサンプルコードでは、MVVM パターンを使用して、データテーブルを含む ViewModel を定義し、データテーブル内のデータの検証を行っています。データテーブルの内容は DataGrid で表示され、新しい行を追加するための「Add Row」ボタンとデータを保存するための「Save」ボタンが用意されています。データを保存する際には、各行のデータが検証され、無効なデータがある場合は保存されません。 お気に入りの記事を「いいね!」で応援しよう
Last updated
2024.03.31 14:52:14
[C#.NET] カテゴリの最新記事
|