ViewModelのWPF MVVM XAMLのテキストボックスがバインドされているのと同じデータにアクセスしたい
MainWindow.xaml の XAML には、StoredProcs/ProcName にバインドされたテキスト ボックスがあります。
<TextBox Name="txtProcName" Text="{Binding Path=StoredProcs/ProcName}"></TextBox>
そして、StoredProcs にバインドされたグリッド グリッドの選択が変更されるたびに、テキスト ボックス内のバインドされたテキストが変更されます。
<DataGrid AutoGenerateColumns="False"
Height="300" Width="290"
HorizontalAlignment="Center"
Name="dataGrid1"
VerticalAlignment="Top"
ItemsSource="{Binding StoredProcs}"
IsSynchronizedWithCurrentItem="True"
Margin="-6,0" Grid.RowSpan="2" Grid.Row="0">
<DataGrid.Columns>
<DataGridTextColumn Header="Proc Name" Binding="{Binding ProcName}" >
</DataGridTextColumn>
</DataGrid.Columns>
</DataGrid>
クリックすると MainWindowViewModel でプロシージャを実行するボタンがあり、機能します
<Button Content="Create RDL" Command="{Binding CreateStoredProcedure}" />
CreateStoredProcedure コードでは、テキスト ボックスに表示されるのと同じデータにアクセスする必要があります (コード ビハインドは使用しません)。StoredProcs/ProcName を取得する必要があると思いますが、その方法がわかりません。
CommandParameter を XAML に追加しようとしましたが、パラメーターを追加できないため、CreateStoredProcedure 命令でアクセスする方法がわかりません
void CreateStoredProcedureExecute()
{
string procName = "proc";
//procName = { StoredProcs/ProcName };
MessageBoxResult result =
MessageBox.Show(String.Format("Create Stored Procedure {0}", procName));
}
bool CanCreateStoredProcedure()
{
return true;
}
public ICommand CreateStoredProcedure
{
get
{
return new RelayCommand(CreateStoredProcedureExecute,
CanCreateStoredProcedure);
}
}