MaterialDesignInXAML / MaterialDesignInXAML/MaterialDesignInXamlToolkit

Use ComponentResourceKey instead of strings to identify resources

Ouverte
#3,918 1 commentaire 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

enhancement evaluation required
Langage dominant
C#
Étoiles
16.3k
Forks
3.5k
Merge moyen
1 j 22 h
PR mergées (30 j)
8

Description

**Is your feature request related to a problem? Please describe.**
- Currently resources are identified using strings. The string can only be validated at runtime and not while writing the XAML code
- When a resource key changes in a new version, the compiler does not indicate a problem and we get an Exception at runtime

**Describe the solution you'd like**
- Using `ComponentResourceKey` would make resources type-save
- **Optional**: preserve the existing string-based resource keys for backward-compatibility, or increase the version number because of breaking changes

**Describe alternatives you've considered**
- Don't know a better way

**Additional context**
To create the resource key, you need to create a Component resource key in a static class:
```csharp
public static partial class MaterialDesignColors
{
public static ComponentResourceKey Primary50Color { get; } = new(typeof(MaterialDesignColors), nameof(Primary50Color));
// ...
}
```

When declaring the resource in the `ResouceDictionary`, use the `ComponentResourceKey` as `Key`:
```xaml

```

When using the resource, we can now use a static reference that is checked by the compiler:
```xaml

```

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Commencez par localiser les déclarations des dictionnaires de ressources et les utilisations de XAML qui identifient actuellement les ressources à l’aide de chaînes. Examinez le modèle statique ComponentResourceKey proposé et déterminez la portée de la migration. Le travail est terminé lorsque les ressources utilisent des clés vérifiées par le compilateur et que la décision concernant la rétrocompatibilité ou le versionnage est documentée et validée.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
csharp
Domaine
desktop
Type d'issue
Fonctionnalité
Difficulté
5/5
Temps estimé
Plus d'une semaine
Activité
Calme
Clarté
Plutôt claire
Accessibilité débutants
35/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.