Замените app:theme
на android:theme
, но вы можете иметь ситуацию, когда вы не используете app:theme
. Проверьте свой макет, особенно макет панели инструментов. В моем случае у меня не было app:theme
в моих файлах макета. Затем взгляните на мою ситуацию:
И я изменил этот макет на:
Теперь я не вижу предупреждения.
Смотрите также здесь: https://chris.banes.me/2015/04/22/support-libraries-v22-1-0/
Отличный объяснение Криса Банеса
Для привязки к явно реализованным элементам интерфейса все, что вам нужно сделать, это использовать круглые скобки. Например:
неявный:
{Binding Path=MyValue}
явный:
{Binding Path=(mynamespacealias:IMyInterface.MyValue)}
У вас есть другой вариант. Задайте ключ в шаблоне данных и укажите ссылку на этот ключ в шаблоне элемента. Примерно так:
<DataTemplate DataType="{x:Type documents:ISpecificOutcome}"
x:Key="SpecificOutcomesTemplate">
<Label Content="{Binding Name}"
ToolTip="{Binding Description}" />
</DataTemplate>
затем ссылайтесь на шаблон по ключу, где вы хотите его использовать, например:
<ListBox ItemsSource="{Binding Path=SpecificOutcomes}"
ItemTemplate="{StaticResource SpecificOutcomesTemplate}"
>
</ListBox>
Коротким ответом является DataTemplate, не поддерживают интерфейсы (думайте о множественном наследовании, явном v. неявный, и т.д.). Путем мы склонны двигаться, это должно иметь базовый класс, который вещи расширяют для разрешения специализации/обобщения DataTemplate. Это означает достойное, но не обязательно оптимальное, решение было бы:
public abstract class SomeClassBase
{
}
public class SomeClass : SomeClassBase
{
}
<DataTemplate DataType="{x:Type local:SomeClassBase}">
<!-- ... -->
</DataTemplate>