全て
| カテゴリ未分類
| 通常
| 数学
| 投資
| 副業
| 転職・就職
| ブログ
| 株Stock
| VBA
| SharePoint
| REST API
| RenderListDataAsStream
| PowerAutomateDesktop
| Graph API
| PowerApps
| PowerAutomate
| PowerFx
| OfficeScriptオフィススクリプト
| PowerAutomate日時Excel日時相互関係
| PowerShell
| Dataverse
| UiPath
| OneDrive
| LINQ
| VB.NET
| C#.NET
カテゴリ:C#.NET
ViewModelから直接TextBoxを操作することは、通常のMVVMパターンでは推奨されません。ViewModelはビジネスロジックを持ち、Viewに依存しないことが重要です。その代わりに、ViewModelはデータを保持し、Viewはそのデータをバインドして表示します。 ただし、ViewModelからView(具体的にはTextBox)を操作する必要がある場合もあります。そのような場合は、代わりにコマンドパターンを使用して、Viewに対して操作をトリガーすることが一般的です。 以下に、ViewModelからTextBoxを操作する方法を示します。 ```csharp using System.Windows.Controls; using System.Windows.Input; public class MainViewModel { // TextBoxのテキストを変更するコマンド public ICommand ChangeTextCommand { get; private set; } public MainViewModel() { ChangeTextCommand = new RelayCommand(ChangeText); } private void ChangeText() { // テキストボックスの内容を変更するロジック // ここでは、ViewModel内のプロパティを使用していますが、 // 実際のアプリケーションでは、データソースからのデータを使用することが一般的です Text = "New Text"; } // ViewModel内のプロパティ private string _text; public string Text { get { return _text; } set { _text = value; // INotifyPropertyChangedイベントを発生させ、バインディングを更新します OnPropertyChanged(nameof(Text)); } } // INotifyPropertyChanged インターフェースの実装 public event PropertyChangedEventHandler PropertyChanged; protected virtual void OnPropertyChanged(string propertyName) { PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } } ``` ViewのXAMLファイルでは、ChangeTextCommandを実行するためのトリガーとして、TextBoxにバインディングします。 ```xml <TextBox Text="{Binding Text}" Width="200"/> <Button Content="Change Text" Command="{Binding ChangeTextCommand}"/> ``` このコードでは、ViewModelの `ChangeText` メソッドが呼び出されると、`Text` プロパティが変更され、それがTextBoxにバインドされた結果、TextBoxの内容が変更されます。 お気に入りの記事を「いいね!」で応援しよう
Last updated
2024.03.28 04:39:38
[C#.NET] カテゴリの最新記事
|