Я хочу реализовать динамический пользовательский интерфейс, в котором элементы управления TextBox будут создаваться динамически, а их содержимое будет привязано к словарю в ViewModel.
Я пытаюсь реализовать двустороннюю привязку данных с помощью ReactiveUI.
Проблема, с которой я столкнулся, заключается в том, что мне, кажется, разрешено привязывать текстовые поля к записи в словаре, только если я использую литеральную строку в качестве ключа, но как только я пытаюсь использовать строковую переменную для настройки привязки, Я получаю следующую ошибку:
Index expressions are only supported with constants.
Вот очень упрощенный пример того, что я пытаюсь сделать. TextBox не создается динамически, чтобы изолировать проблему:
string PropNum = "22017";
this.Bind(ViewModel, vm => vm.ExcelData[PropNum], view => view.tbCreate.Text);
В этом примере ExcelData
— это Dictionary<string, object>
, определенный в ViewModel.
С другой стороны, следующее работает нормально:
this.Bind(ViewModel, vm => vm.ExcelData["22017"], view => view.tbCreate.Text);
Мне нужно, чтобы ключ поиска был переменной. Любые способы достижения этого результата?
Спасибо