Учитывая этот объект
class Contact
{
public IEnumerable<Person> People { get; }
public string PhoneNumber { get; }
}
class Person
{
public string MobileNumber { get; }
}
и следующий макет
<Contact>
<PhoneNumber/>
<SinglePerson.MobileNumber/>
<People>
<MobileNumber />
</People>
<Contact>
То, что я хотел бы сделать, это скрыть элемент People, когда есть только один человек, и вместо этого показать элемент числа SinglePerson.Mobile.
Прятаться довольно легко:
<Style.Triggers>
<DataTrigger Binding="{Binding Path=People.Count}" Value="1">
<Setter Property="Visibility" Value="Collapsed" />
</DataTrigger>
</Style.Triggers>
Показ немного хитрее:
<Setter Property="Visibility" Value="Collapsed"/>
<Style.Triggers>
<DataTrigger Binding="{Binding Path=People.Count}" Value="1">
<Setter Property="Visibility" Value="Visible" />
</DataTrigger>
</Style.Triggers>
То, что я не могу понять, как это сделать, - это связать текст <SinglePerson.MobileNumber>
с первым человеком в списке людей. Я пробовал варианты "{Binding People [0] .MobilePhone}", но это не работает.
Это вообще возможно?