Dopo un paio d'ore di tentativi di eseguire il debug di un problema con l'associazione dati causata da una proprietà digitata erroneamente in un'estensione Binding
. Una volta ho notato l'errore, la consapevolezza che se IntelliSense fosse disponibile, potrei non aver commesso l'errore in primo luogo. Come utente di Visual Studio che è abituato a errori/avvisi durante l'errata digitazione di un nome; forse sono viziato, ma la mancanza di IntelliSense ha portato all'errore.IntelliSense per associazione dati non funzionante
Ho fatto qualche ricerca e ho trovato che Intellisense for Data Binding is available is Visual Studio 2013 che sto usando (edizione Ultimate). Ho provato a creare una semplice app WPF seguendo il secondo esempio nel blog. Innanzitutto, sembra che ci sia un errore nel secondo esempio nel blog che ha generato l'errore del compilatore. Prefixing the Type=ViewModel:MainViewModel
attribute with d:
corretto l'errore del compilatore, ma le proprietà della mia classe View-Model non vengono ancora visualizzate nel menu Intellisense. Il mio codice è sotto e in GitHub.
MainViewModel.cs:
using System.ComponentModel;
using System.Runtime.CompilerServices;
namespace IntelliSenseForDataBinding
{
public class MainViewModel : INotifyPropertyChanged
{
public MainViewModel()
{
Greeting = "Hello World";
Answer = 42;
}
private string _Greeting;
public string Greeting
{
get { return _Greeting; }
set { _Greeting = value; OnPropertyChanged(); }
}
private int _Answer;
public int Answer
{
get { return _Answer; }
set { _Answer = value; OnPropertyChanged(); }
}
public event PropertyChangedEventHandler PropertyChanged;
protected void OnPropertyChanged([CallerMemberName] string propertyName = null)
{
PropertyChangedEventHandler handler = PropertyChanged;
if (handler != null)
handler(this, new PropertyChangedEventArgs(propertyName));
}
}
}
MainWindow.xaml:
<Window x:Class="IntelliSenseForDataBinding.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d" d:DesignHeight="300" d:DesignWidth="450"
d:DataContext="{d:DesignInstance Type=MainViewModel, IsDesignTimeCreatable=True}"
Title="MainWindow" Height="350" Width="525">
<Grid>
</Grid>
</Window>
MainWindows.xaml.cs:
using System.Windows;
namespace IntelliSenseForDataBinding
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
DataContext = new MainViewModel();
InitializeComponent();
}
}
}
Ecco la prova che non funziona:
Mi aspetto di vedere un elemento per la proprietà 'Saluto' nel menu IntelliSense. Qualche suggerimento sul perché non è lì? Ho anche provato a reimpostare le impostazioni di Visual Studio di default, per ogni evenienza.
Inoltre, eventuali suggerimenti su metodi aggiuntivi per la prevenzione o il rilevamento di nomi di proprietà digitati in modo errato negli attributi di Associazione?
Penso che questa potrebbe essere la risposta: http://stackoverflow.com/questions/24525414/intellisense-not-working-in-visual-studio-2013-for-xaml –
No: ho appena checke d e ho installato Blend per Visual Studio. IntelliSense funziona per tutto il resto, solo per Data Binding. –