It is possible to set elements type in XAML in CollectionView?
How I can say ReSharper about type of elements in CollectionView? In XAML editor I have errors like "Cannot resolve property 'FirstValue' in data context of type 'object'" in second DataGrid.
Snippet
MainWindow.xaml:
Snippet
Window x:Class="TestWpf.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:TestWpf="clr-namespace:TestWpf"
mc:Ignorable="d"
d:DataContext="{d:DesignInstance {x:Type TestWpf:MainWindowViewModel}}">
<Window.DataContext>
<TestWpf:MainWindowViewModel/>
</Window.DataContext>
<StackPanel>
<DataGrid ItemsSource="{Binding Models1}" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding FirstValue}"/>
<DataGridTextColumn Binding="{Binding SecondValue}"/>
</DataGrid.Columns>
</DataGrid>
<DataGrid ItemsSource="{Binding Models2}" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding FirstValue}"/>
<DataGridTextColumn Binding="{Binding SecondValue}"/>
</DataGrid.Columns>
</DataGrid>
</StackPanel>
</Window>
MainWindowViewModel:
Snippet
using System.Collections.Generic;
using System.Windows.Data;
namespace TestWpf
{
public class MainWindowViewModel
{
public MainWindowViewModel()
{
Models1 = new List<SubViewModel>
{
new SubViewModel {FirstValue = "First value 1", SecondValue = "Second value 1"},
new SubViewModel {FirstValue = "First value 2", SecondValue = "Second value 2"},
new SubViewModel {FirstValue = "First value 3", SecondValue = "Second value 3"},
new SubViewModel {FirstValue = "First value 4", SecondValue = "Second value 4"}
};
Models2 = new ListCollectionView(Models1);
}
public class SubViewModel
{
public string FirstValue { get; set; }
public string SecondValue { get; set; }
}
public List<SubViewModel> Models1 { get; set; }
public ListCollectionView Models2 { get; set; }
}
}
Please sign in to leave a comment.
I'm eagerly interested in this, too!