2017-10-12 23 views
1

Le IntelliSense de ReSharper ne semble pas fonctionner pour moi dans XAML Mon Xaml ressembleReSharper IntelliSense ne fonctionnera pas pour XAML

<Window x:Class="GraphicalLuaEditor.MainWindow" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
    xmlns:local="clr-namespace:GraphicalLuaEditor" 
    xmlns:nodeScriptingEditor="clr-namespace:NodeScriptingEditor;assembly=NodeScriptingEditor" 
    mc:Ignorable="d" 
    Title="MainWindow"> 
<DockPanel> 
    <TextBlock Text="{Binding Test}"/> 
</DockPanel> 

et mes xaml.cs ressemble

using System; 
using System.Windows; 
using System.Windows.Input; 

namespace GraphicalLuaEditor 
{ 
    /// <summary> 
    /// Interaction logic for MainWindow.xaml 
    /// </summary> 
    public partial class MainWindow : Window 
    { 
     public MainWindow() 
     { 
      DataContext = this; 
      InitializeComponent(); 
     } 

     public string Test { get; set; } = "ÖÖÖH"; 

     private void CommonCommandBinding_CanExecute(object sender, CanExecuteRoutedEventArgs e) 
     { 
     throw new NotImplementedException(); 
     } 
    } 
} 

Lorsque j'édite le XAML, je m'attends à ce qu'il m'aide avec la liaison de données en suggérant des propriétés du code derrière, mais ce n'est pas le cas. Au travail où je ne fais apparemment rien de différent cela fonctionne! Impossible de résoudre le symbole Test en raison d'un contexte de données inconnu

+0

I n'ont jamais trouvé que Resharper fonctionne bien avec XAML. J'ai eu des problèmes similaires et je n'ai pas trouvé de solution définitive. accordé je n'ai pas regardé dur. J'ai trouvé que si je construisais le projet, il arriverait parfois (au hasard) que le resharper fonctionne mieux. –

+1

Vous n'obtiendrez pas d'intellisense si vous utilisez code-behind pour définir le 'DataContext'. S'il ne le voit pas en XAML, alors il ne saura pas ce que vous voulez. Tout ceci peut être résolu en utilisant MVVM. Vous obtiendrez l'intellisense du concepteur et de Resharper. – Laith

+0

@Laith Comment configurer MVVM? Avez-vous des liens vers des ressources utiles ou un exemple – Hampus

Répondre

2

Intellisense ne fonctionne pas pour les expressions de liaison xaml, sauf si DataContext est également défini dans xaml.

si la fenêtre iteslf est utilisé comme DataContext, l'on peut utiliser la liaison suivante:

<Window DataContext="{Binding RelativeSource={RelativeSource Self}}" ...> 

s'il existe un modèle de vue spécialisée, la conception du temps DataContext peut être utilisé:

<Window d:DataContext="{d:DesignInstance Type=vm:MyViewModel, IsDesignTimeCreatable=True}" ...>