前提・実現したいこと
MainWindowにDataGridなどを配置したユーザコントロールを表示させるのですが、
このDataGridにはチェックボックスや文字列、ボタンを表示させたいと思っています。
このとき、DataGridの文字列はViewModelからバインドしたい、かつボタンやチェックボックス押下のアクションをViewModelで行いたいと思っておりますが、うまくいきませんでした。
該当のソースコード
[UsercontrolのXaml]
Xaml
1<UserControl x:Class="TEST.Views.TESTList" 2 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 3 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 4 xmlns:prism="http://prismlibrary.com/" 5 xmlns:viewmodels="clr-namespace:TEST.ViewModels" 6 xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 7 xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 8 mc:Ignorable="d" 9 d:DataContext="{d:DesignInstance Type=viewmodels:TESTListViewModel}" 10 prism:ViewModelLocator.AutoWireViewModel="True"> 11 <Grid> 12 <StackPanel> 13 <DataGrid Name="dataGrid" AutoGenerateColumns="False" CanUserAddRows="False" IsReadOnly="True" 14 ScrollViewer.HorizontalScrollBarVisibility="Disabled" Height="270" 15 ItemsSource="{Binding ActiveFiles}"> 16 <DataGrid.Columns> 17 <DataGridTemplateColumn Header="" Width="10"> 18 <DataGridTemplateColumn.CellTemplate> 19 <DataTemplate> 20 <CheckBox IsChecked="False"/> 21 </DataTemplate> 22 </DataGridTemplateColumn.CellTemplate> 23 </DataGridTemplateColumn> 24 <DataGridTextColumn Header="名前" Binding="{Binding FileName}" MinWidth="300" Width="*"/> 25 <DataGridTextColumn Header="担当" Binding="{Binding Person}" Width="75"/> 26 <DataGridTextColumn Header="ステータス" Binding="{Binding Status}" Width="50"/> 27 <DataGridTemplateColumn Width="50"> 28 <DataGridTemplateColumn.CellTemplate> 29 <DataTemplate> 30 <Button Content="確認" Command="{Binding ShowStatusCheck}"/> 31 </DataTemplate> 32 </DataGridTemplateColumn.CellTemplate> 33 </DataGridTemplateColumn> 34 </DataGrid.Columns> 35 </DataGrid> 36 <Button Content="実行" Margin="430,5,5,5"/> 37 </StackPanel> 38 </Grid> 39</UserControl> 40
試したこと
以前の質問の回答から応用して解決できると思っていたのですが、まだ理解が及んでおらず行き詰っております。
補足情報(FW/ツールのバージョンなど)
・VisualStudio2019
・C# PWF(Prismフレームワーク使用)
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。