Сделан гораздо более простой пример, надеюсь, кто-то может последовать этому и помочь мне
Вот мой код.
ViewModel
public class ViewModel
{
private Person _noninterfacePerson;
private IPerson _interfacePerson;
public ViewModel()
{
_noninterfacePerson = new Person();
_interfacePerson = new Person();
}
public Person NonInterfacePerson
{
get { return _noninterfacePerson; }
}
public IPerson InterfacePerson
{
get { return InterfacePerson; }
}
}
Person
public class Person : IPerson
{
public Person()
{
}
public string Name
{
get;
set;
}
public int age
{
get;
set;
}
}
IPerson
public interface IPerson
{
int age { get; set; }
string Name { get; set; }
}
View
<Window x:Class="WpfApplication2.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:WpfApplication2"
mc:Ignorable="d"
Title="MainWindow" Height="350" Width="525">
<Grid d:DataContext="{d:DesignInstance local:ViewModel}">
</Grid>
</Window>
В Expression Blend, если я вставляю текстовый блок, нажмите «Дополнительные параметры» -> Binding Data... -> Контекст данных Я вижу и InterfacePerson, и NonInterfacePerson в качестве параметров для привязки.Однако у NonInterfacePerson есть небольшая стрелка, показывающая другие свойства, к которым я могу привязаться.Возраст и имя в этом случае.
То же самое происходит, когда я устанавливаю d: DataContext в ad: DesignData Source.Я не использовал это для этого примера, потому что он более сложный.Но именно здесь я действительно хочу, чтобы это работало, потому что тогда я смогу увидеть все свои варианты привязки И иметь образцы данных.
Если я вместо этого сделаю это в моем представлении:
<Window x:Class="WpfApplication2.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:WpfApplication2"
mc:Ignorable="d"
Title="MainWindow" Height="350" Width="525">
<Window.Resources>
<local:ViewModel x:Key="DummyVM"/>
</Window.Resources>
<Grid d:DataContext="{Binding Source={StaticResource DummyVM}}">
</Grid>
</Window>
Тогда яМОЖЕТ увидеть свойства InterfacePerson, однако я все еще не могу получить простую реализацию примеров данных, которую я хотел бы использовать, используя d: DesignData.
Следует отметить, что во всех случаях, если я вручную набираю путьэто работает отлично.Это просто вопрос заставить Blend показывать их, чтобы было проще установить привязки.
Спасибо за любую помощь, которую вы можете оказать в этом!