なぜ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 サイトの他の関連記事を参照してください。