2017-10-12 75 views
1

工作似乎ReSharper的智能感知不適合我在XAML工作 我的XAML看起來像ReSharper的智能感知不會爲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> 

和我xaml.cs看起來像

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(); 
     } 
    } 
} 

當我編輯XAML時,我期望它能通過從代碼後面提示屬性來幫助我實現數據綁定,但事實並非如此。在我看起來沒有什麼不同的工作中,它起作用!
此外,它抱怨它無法解析符號測試由於未知的數據上下文

+0

我從來沒有找到Resharper與XAML合作。我遇到了類似的問題,無法找到明確的解決方案。授予我沒有看起來很難。我發現如果我建立這個項目,它有時會(隨機)導致resharper更好地工作。 –

+1

如果使用代碼隱藏來設置'DataContext',則不會得到任何智能感知。如果它沒有在XAML中看到它,那麼它將不知道你想要什麼。所有這些都可以通過使用MVVM來彌補。您將從設計師和Resharper那裏獲得智能感知。 – Laith

+0

@Lith我如何設置MVVM?你有任何鏈接到有用的資源或例子 – Hampus

回答

2

Intellisense不適用於xaml綁定表達式除非DataContext也設置在xaml中。

如果窗口iteslf用作一個DataContext,下面的結合可以使用:

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

,如果有一個專門的視圖模型,設計時的DataContext可以使用:

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