2017-07-26 2 views
2

In einer UWP-Windows 10 C#/XAML App mit Template10 versuche ich derzeit, meine Seiten/Ansichten von einer Basisklasse zu erben, die von Windows.UI.Xaml.Controls.Page erbt.
Dies wurde korrekt funktioniert, aber wenn ich versuche, die Basisklasse generic zu machen, und beinhalten eine Art Argument in der Kinderklasse und der XAML in der folgenden Art und Weise, funktioniert es nicht:Generische Basisklasse für Pages/Views in UWP Windows 10 App

namespace App.Views 
{ 
    public abstract class InfoListViewBase<M> : Page where M : InfoListViewModelBase 
    { 

     public InfoListViewBase() { } 

    } 

    public sealed partial class ModelPage : InfoListViewBase<Model> 
    { 
     public Model() 
     { 
      InitializeComponent(); 
      NavigationCacheMode = NavigationCacheMode.Disabled; 
     } 
    } 
} 

<local:InfoListViewBase 
    x:Class="App.Views.ModelPage" 
    x:TypeArguments="l:Model" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:Behaviors="using:Template10.Behaviors" 
    xmlns:Core="using:Microsoft.Xaml.Interactions.Core" 
    xmlns:Interactivity="using:Microsoft.Xaml.Interactivity" 
    xmlns:controls="using:Template10.Controls" 
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
    xmlns:local="using:App.Views" 
    xmlns:l="using:Library" 
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d"> 

</local:InfoListViewBase> 

Der Fehler ich erhalte ist:

The name "InfoListViewBase`1" does not exist in the namespace "using:App.Views". 

der Fehler jedes Mal, wenn ich die Zeile x:TypeArguments="l:Model" zu dem XAML hinzufügen erscheint.
Mehrfache Umbauten, Säuberungen usw. in Visual Studio haben das Problem nicht gelöst.
Gibt es etwas, das ich bei der Implementierung des Generic in XAML falsch mache?

Antwort

2

Leider werden generische Parameter in XAML in der UWP-App immer noch nicht unterstützt. Sie können x:TypeArguments derzeit nicht in XAML verwenden. Sie können jedoch auf this thread verweisen, um eine Problemumgehung zu versuchen.

Wenn Sie diese Funktion weiterhin verwenden möchten, können Sie diese Feature-Anforderung auch an UserVoice senden.

+1

Das ist traurig zu hören. Danke für die Antwort! – cloudcrypt

Verwandte Themen