Mélanger 3 dans le temps de conception ne peut pas trouver mes convertisseurs / Ressources. (WPF)
-
20-09-2019 - |
Question
Je vais avoir des problèmes en utilisant le mélange avec ma solution Visual Studio.
Dans Runtime, et compiler tout le temps est très bien.
Comme vous pouvez le voir sur la photo, Blend me pousse à construire le projet, mais il ne change pas la situation, même après une construction réussie, la reconstruction, propre et construire, il est toujours le même, l'interface utilisateur est bloqué le concepteur
Toutes les idées?
EDIT:. Correction de fautes, le problème persiste
Code Converter:
namespace BlendTest
{
public class TestConvert : IValueConverter
{
#region IValueConverter Members
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return ((bool)value) ? Visibility.Visible : Visibility.Collapsed;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
#endregion
}
}
<Window
x:Class="XP2Win7.UserInterface.ImageViewer.MainView.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:BlendTest"
WindowState="Maximized"
WindowStartupLocation="CenterScreen"
Background="Transparent"
Title="Test">
<Window.Resources>
<local:TestConvert x:Key="TestConvert"/>
</Window.Resources>
<Grid x:Name="RootLayout" >
<TextBlock Text="Hello" Visibility="{Binding IsMargol, Converter={StaticResource TestConvert}}" FontSize="48" FontWeight="Bold" />
</Grid>
</Window>
Merci Ariel
La solution 2
Eh bien, alors que la cause du problème est encore inconnu pour moi.
La solution au mess était comme suit:
-
J'ai créé un nouveau projet de code bibliothèque, et déménagea tous mes contrôles et convertisseurs.
-
I utilisé l'attribut XmlnsDefinition pour décorer l'ensemble de sorte que chaque a été correspondant au même espace de noms.
-
fixer toutes les références.
et voilà.
Ariel
Autres conseils
Il semble que vous avez des fautes de frappe dans votre XAML:
Alubm
au lieu de Album
et BlentTest
au lieu de BlendTest
Je devine que les erreurs sont en fait vraies erreurs du compilateur, et corriger les fautes de frappe deux ci-dessus sera très probablement « fix » le concepteur.
Edit:
Le candidat le plus probable que je vois est que votre convertisseur est dans un projet distinct de votre fichier XAML (mais dans la même solution). Si tel est le cas, assurez-vous de préciser l'ensemble dans la déclaration XAML et assurez-vous que l'autre projet (avec BlendTest) est correctement référencée. à-dire:
xmlns:local="clr-namespace:BlendTest;assembly:BlendTest"
Si votre référence à un type (avec espace de noms) défini dans un autre projet, la référence de montage doit exister, ainsi.
Cette réponse il fixe pour moi. Je remis à zéro la « plate-forme cible » à « Any CPU »
Ce qui a fonctionné pour moi?
Modification du chemin de sortie de construction de bin / x86 / Debug bin / Debug a fonctionné pour moi. Mais n'a toujours pas de sens depuis ma plate-forme cible a été réglée « x86 ». Je décide donc d'insister plus sur la question et a découvert que la sélection plate-forme dans le menu déroulant « x86 » ne reflète pas l'ensemble de « valeur » dans le fichier de configuration du projet.
Je déchargeai le projet dans VS, ouvert .csproj dans l'éditeur pour voir ce que la valeur est pour « plate-forme ». À ma grande surprise, il est réglé sur « Any CPU » tandis que le menu déroulant sous les options de construction a montré « x86 ». Tout ce que je faisais était de modifier manuellement le fichier .csproj à lire « x86 ».
Voici les étapes pour résoudre:
- Faites un clic droit sur VS projet
- Décharger
- Clic droit et modifier le fichier .csproj
- Assurez-vous que « Plate-forme » est réglé sur la bonne