У меня возникают проблемы с ReSharper в дизайне XAML. Вот мой исходный код:WPF - ReSharper не распознает область унаследованного связывания в XAML
MainWindow.xaml
<Window x:Class="MyNamespace.Views.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:system="clr-namespace:System;assembly=mscorlib"
xmlns:vm="clr-namespace:MyNamespace.ViewModels">
<Window.DataContext>
<vm:MainWindowViewModel/>
</Window.DataContext>
<Grid>
<StackPanel>
<!-- User selects item from list -->
<ListView ItemsSource="{Binding Items}" IsSynchronizedWithCurrentItem="True">
<ListView.Resources>
<DataTemplate DataType="{x:Type Item}">
<TextBlock Text="{Binding Name}">
</DataTemplate>
</ListView.Resources>
</ListView>
<!-- Currently selected list item details are shown here -->
<ContentControl Content="{Binding Items}">
<ContentControl.ContentTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding Description}"/>
</StackPanel>
</DataTemplate>
</ContentControl.ContentTemplate>
</ContentControl>
</StackPanel>
</Grid>
</Window>
C# Классы
public class MainWindowViewModel
{
public ObservableCollection<Item> Items { get; set; }
public MainWindowViewModel()
{
Items = new ObservableCollection<Item>();
}
// ...
}
public class Item
{
public string Name { get; set; }
public string Description { get; set; }
// ...
}
ReSharper подчёркивает Описание в <TextBlock Text="{Binding Description}"/>
в моем ContentControl
XAML элемента с предупреждающим текстом от Cannot resolve property 'Description' in data context of type 'MyNamespace.ViewModels.MainWindowViewModel'
Я не уверен, как его запутали, потому что я уже определил свой DataContext уже в элементе Window
, так что он определенно знает, с каким классом я работаю. И мое приложение работает без проблем и функционирует так, как ожидалось, поэтому я уверен, что это проблема ReSharper.
Это исправило проблему! Я понял, что я задал «DataType» в моем «ListView», но не в моем «ContentControl», который объясняет, почему ReSharper только жаловался в одном месте. Спасибо! –
@KyleV. О, я не видел, что вы также задали DataType в Ресурсе, но он все равно необходим в ContentControl .. никаких проблем, ваш прием (: –