ホームページ > バックエンド開発 > C++ > MVVMを使用してWPFキャンバスに長方形を動的に追加および配置する方法は?

MVVMを使用してWPFキャンバスに長方形を動的に追加および配置する方法は?

Patricia Arquette
リリース: 2025-01-29 17:41:09
オリジナル
1015 人が閲覧しました

How to Dynamically Add and Position Rectangles on a WPF Canvas using MVVM?

WPFキャンバスにMVVMを使用して可変長方形を動的に追加

この記事の目標は、実行時に正確な量を知ることなく、MainWindowのキャンバスに複数の長方形をレンダリングすることです。これには、MVVM原則を使用するための柔軟な方法が必要です。

viewmodelの抽象的な長方形は、

を示しています x、y座標、サイズ属性を含む長方形の抽象化を定義するビューモデルを作成します。

アイテムコントロールとキャンバス

<code class="language-csharp">public class RectItem
{
    public double X { get; set; }
    public double Y { get; set; }
    public double Width { get; set; }
    public double Height { get; set; }
}

public class ViewModel : INotifyPropertyChanged
{
    public ObservableCollection<RectItem> RectItems { get; set; } = new ObservableCollection<RectItem>();

    // INotifyPropertyChanged implementation (required for data binding)
    public event PropertyChangedEventHandler PropertyChanged;
    protected void OnPropertyChanged([CallerMemberName] string propertyName = null)
    {
        PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
    }
}</code>
ログイン後にコピー
この設定を通じて、キャンバスでレンダリングされる長方形の数は、ビューモデルの長方形の数によって決定されます。ビューモデルのコレクションが変更されると、キャンバスは自動的に更新され、新しい長方形を反映します。 データバインディングの通常の作業を作成するには、ViewModelがインターフェイスを実装する必要があることに注意してください。 インターフェイスの実装がコードの例に追加されました。

inインスタンスをコレクションに追加するには、ランタイム中に長方形を動的に追加できます。

以上がMVVMを使用してWPFキャンバスに長方形を動的に追加および配置する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート