C# multiple custom controls types recognizing
<p>My question is based on an example from WPF, but, I think, it's more about C# in general.</p>

<p>Suppose I have a WPF app where I use several types of Custom Controls, let it be <code>CustControl1</code>, <code>CustControl2</code>, <code>CustControl3</code>. The page can dynamically load the XAML with controls of either of the types.<br>
This very page has a code-behind where some manipulations are made with the Custom Controls, like:</p>

<pre><code>List&lt;CustControl1&gt; MyCustControls = this.Descendents().OfType&lt;CustControl1&gt;().ToList();          
foreach (CustControl1 cntr in MyCustControls)
{
   ...
</code></pre>

<p>In the above code the <code>CustControl1</code> type is explicitly defined, and if other types of Custom Controls are loaded on the page (of <code>CustControl2</code> or <code>CustControl3</code> type), the code will not recognize it.</p>

<p>My level of C# knowledge is insufficient to find out how to solve such a problem of multiple type recognizing. Or is it possible in C# at all?</p>
