ホームページ > バックエンド開発 > C++ > WPFでジェネリックに安全にジェネリックをキャストする方法は?

WPFでジェネリックに安全にジェネリックをキャストする方法は?

Mary-Kate Olsen
リリース: 2025-01-28 18:41:09
オリジナル
824 人が閲覧しました

How to Safely Cast Generic to Generic in WPF?

ジェネリックをwpf WPFでは、派生したユーザーコントロール共有関数を提供するベースユーザーコントロールを作成する一般的な方法です。この関数に派生インスタンスからアクセスできるようにするために、イベントは通常、派生ユーザーコントロールの非表示コードで呼ばれます。 ただし、ベースユーザーコントロールのハンドレックメソッドには、特定のタイプのパラメーターが必要になる場合があります。 vaseviewmodel>これは、DataContextをBaseViewModel<に直接変換できないためです。

なぜgeneric>
<code class="language-csharp">private void SomeClick(object sender, RoutedEventArgs e) {
    HandleClick(sender);
    MyDataGrid.Items.Refresh();
}</code>
ログイン後にコピー

generic&gt;想像してください。あなたは羊のオブジェクトをリストに追加することができます&gt;

<code class="language-csharp">public class BaseUserControl : UserControl {
    protected void HandleClick(object sender) {
        var vm = (BaseViewModel<零件>)DataContext;
        ...
    }
}</code>
ログイン後にコピー
代替

この問題を解決するために、次の代替ソリューションを考慮することができます。 Genericsの代わりにインターフェイスを使用して、DataContextを実装する必要がある契約を定義します。

コラボレーションまたはインバーターインターフェイスを使用して、一般的なタイプのみを強制的に読み取ります。

ジェネリックを介した継承は、自己ベースのクラスを継承し、独自の特定の機能を実現します。

以上がWPFでジェネリックに安全にジェネリックをキャストする方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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