このタスク管理アプリは、PowerShellの.ps1ファイル、WPFのXAMLファイル、およびMicrosoft Accessの.accdbファイルを使用して作成されます。ODBCデータアダプタを使用してデータベースに接続します。以下に、プロジェクトフォルダのツリー構造、XAMLファイル、およびPS1ファイルのサンプルがあります。
プロジェクトフォルダのツリー構造:
📁 TaskManagerApp
├ 📄 MainWindow.xaml
├ 📄 MainWindow.ps1
└ 📄 TaskDatabase.accdb
MainWindow.xaml (画面構成のみ):
<Window
xmlns="<http://schemas.microsoft.com/winfx/2006/xaml/presentation>"
xmlns:x="<http://schemas.microsoft.com/winfx/2006/xaml>"
x:Class="TaskManagerApp.MainWindow"
Title="タスク管理アプリ" Height="450" Width="800">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Button x:Name="AddTaskButton" Grid.Row="0" Content="タスク追加" Click="AddTaskButton_Click"/>
<DataGrid x:Name="TaskDataGrid" Grid.Row="1" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Header="タスク名" Binding="{Binding TaskName}"/>
<DataGridTextColumn Header="期限" Binding="{Binding DueDate}"/>
<DataGridCheckBoxColumn Header="完了" Binding="{Binding IsCompleted}"/>
</DataGrid.Columns>
</DataGrid>
</Grid>
</Window>
MainWindow.ps1 (動き):
# Load WPF and XAML
Add-Type -AssemblyName PresentationFramework
[xml]$xaml = Get-Content -Path "MainWindow.xaml"
$xamlReader = New-Object -TypeName System.Xml.XmlNodeReader -ArgumentList $xaml
$window = [Windows.Markup.XamlReader]::Load($xamlReader)
# Connect to the Access database using ODBC data adapter
$connectionString = "Driver={Microsoft Access Driver (*.mdb, *.accdb)};Dbq=TaskDatabase.accdb;"
$connection = New-Object -TypeName System.Data.Odbc.OdbcConnection -ArgumentList $connectionString
$connection.Open()
# Load the task data from the database
$loadTaskDataCommand = $connection.CreateCommand()
$loadTaskDataCommand.CommandText = "SELECT TaskName, DueDate, IsCompleted FROM Tasks"
$taskDataTable = New-Object -TypeName System.Data.DataTable
$taskDataAdapter = New-Object -TypeName System.Data.Odbc.OdbcDataAdapter -ArgumentList $loadTaskDataCommand
$taskDataAdapter.Fill($taskDataTable)
# Bind the DataGrid to the task data
$window.TaskDataGrid.ItemsSource = $taskDataTable.DefaultView
# Event handler for the Add Task button
function AddTaskButton_Click {
# Code to add a new task
}
# Assign the event handler to the button
$window.AddTaskButton.Add_Click({ AddTaskButton_Click })
# Display the window
$window.ShowDialog()
# Close the database connection
$connection.Close()
上記のサンプルコードでは、W
上記のサンプルコードでは、WPFとXAMLを使用してアプリケーションの画面構成を作成し、PowerShellでアプリケーションの動作を実装しています。データベースとしてMicrosoft Accessの.accdbファイルを使用し、ODBCデータアダプタを使ってデータベースに接続しています。
続きとして、タスクを追加する機能を実装しましょう。タスク名と期限を入力できるダイアログを表示し、入力されたタスクをデータベースに保存します。
MainWindow.xamlに追加:
<!-- Add Task Dialog -->
<Window x:Name="AddTaskDialog" x:Class="TaskManagerApp.AddTaskDialog" Title="タスク追加" Height="200" Width="400">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Label Grid.Row="0" Content="タスク名:"/>
<TextBox x:Name="TaskNameTextBox" Grid.Row="1" Margin="5"/>
<Label Grid.Row="2" Content="期限:"/>
<DatePicker x:Name="DueDatePicker" Grid.Row="3" Margin="5"/>
<Button x:Name="SaveButton" Grid.Row="4" Content="保存" Click="SaveButton_Click" Margin="5"/>
</Grid>
</Window>
MainWindow.ps1に追加: