Событие, не работающее между ViewModels [duplicate]

Он компилируется в C ++, потому что C ++ должен поддерживать динамическую инициализацию в любом случае, или вы не можете иметь локальные статические или нелокальные объекты с нетривиальными конструкторами.

Так как C ++ имеет такую ​​сложность в любом случае, поддержка этой инициализации, как вы показываете, не сложнее добавить.

В C это было бы большой проблемой, потому что у C нет других причин поддерживать инициализацию при запуске программы (кроме тривиальной инициализации нуля ). В C исходные значения области видимости файла или локальных статических объектов всегда можно статически помещать в исполняемый образ.

6
задан Janez Lukan 8 January 2015 в 07:34
поделиться

1 ответ

Проблема заключается в том, что вы явно установили DataContext вашего UserControl:

DataContext="{Binding Mode=OneWay, RelativeSource={RelativeSource Self}}

Удалите это назначение и запишите привязку ItemName следующим образом:

<TextBlock Text="{Binding ItemName,
    RelativeSource={RelativeSource AncestorType=UserControl}}"/>

или как это

<TextBlock Text="{Binding ItemName, ElementName=ItemRowControl}"/>
5
ответ дан Clemens 22 August 2018 в 14:05
поделиться
  • 1
    Спасибо, это работает, как и ожидалось. Можете ли вы объяснить часть RelativeSource привязки, пожалуйста? Привязка с ElementName в вашем ответе имеет смысл для меня. Еще раз спасибо. – Janez Lukan 8 January 2015 в 07:55
  • 2
    Пожалуйста, обратитесь к онлайн-документации в MSDN. В любом случае экземпляр UserControl устанавливается как исходный объект привязки. – Clemens 8 January 2015 в 07:58
  • 3
    @JanezLukan, что означает относительный поиск в дереве управления до тех пор, пока не найдет управление типом UserControl, и поиск будет вверх, потому что он говорит AncestorType – Harsh Baid 8 January 2015 в 08:02
  • 4
    @Clemens: Что делать, если я хочу установить DataContext в свой пользовательский UserControl? Есть ли способ справиться с этим? – gartenriese 27 June 2016 в 14:20
  • 5
    – Dru Steeby 18 October 2018 в 19:13
Другие вопросы по тегам:

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