WPF, связывающий с данными для взаимодействия через интерфейс и не фактический объект - кастинг возможного?

Замените app:theme на android:theme, но вы можете иметь ситуацию, когда вы не используете app:theme. Проверьте свой макет, особенно макет панели инструментов. В моем случае у меня не было app:theme в моих файлах макета. Затем взгляните на мою ситуацию:


И я изменил этот макет на:


Теперь я не вижу предупреждения.

Смотрите также здесь: https://chris.banes.me/2015/04/22/support-libraries-v22-1-0/

Отличный объяснение Криса Банеса

50
задан Rune Jacobsen 29 November 2008 в 20:40
поделиться

3 ответа

Для привязки к явно реализованным элементам интерфейса все, что вам нужно сделать, это использовать круглые скобки. Например:

неявный:

{Binding Path=MyValue}

явный:

{Binding Path=(mynamespacealias:IMyInterface.MyValue)}
62
ответ дан 7 November 2019 в 10:43
поделиться

У вас есть другой вариант. Задайте ключ в шаблоне данных и укажите ссылку на этот ключ в шаблоне элемента. Примерно так:

<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>

Rendering

9
ответ дан 7 November 2019 в 10:43
поделиться

Коротким ответом является DataTemplate, не поддерживают интерфейсы (думайте о множественном наследовании, явном v. неявный, и т.д.). Путем мы склонны двигаться, это должно иметь базовый класс, который вещи расширяют для разрешения специализации/обобщения DataTemplate. Это означает достойное, но не обязательно оптимальное, решение было бы:

public abstract class SomeClassBase
{

}

public class SomeClass : SomeClassBase
{

}

<DataTemplate DataType="{x:Type local:SomeClassBase}">
    <!-- ... -->
</DataTemplate>
13
ответ дан user7116 7 November 2019 в 20:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: