Silverlight WCF RIA: как использовать комбинированные списки в DataForms
Я потратил почти несколько часов на эту проблему, и я дергаю себя за волосы... Мой код выглядит следующим образом:
<toolkit:DataForm MaxWidth="400" Name="dataForm_EditWBS" Header="WBS Task" AutoCommit="True" AutoEdit="True" AutoGeneratingField="dataForm_EditWBS_AutoGeneratingField">
<toolkit:DataForm.EditTemplate>
<DataTemplate>
<StackPanel>
<toolkit:DataField Label="Phase">
<ComboBox x:Name="ComboBoxEdit_Phase" DisplayMemberPath="PhaseDescription" SelectedValuePath="PhaseID"
SelectedItem="{Binding PhaseID, Mode=TwoWay}"
/>
</toolkit:DataField>
<toolkit:DataField Label="Task">
<TextBox
Text="{Binding TaskDescription, Mode=TwoWay}"/>
</toolkit:DataField>
<toolkit:DataField Label="Comments">
<TextBox HorizontalScrollBarVisibility="Auto" AcceptsReturn="True" Height="60" TextWrapping="Wrap"
Text="{Binding TaskComments, Mode=TwoWay}"/>
</toolkit:DataField>
<toolkit:DataField Label="Resource Type">
<ComboBox x:Name="cbResourceType"
SelectedItem="{Binding PhaseID, Mode=TwoWay}" DisplayMemberPath="PhaseDescription" SelectedValue="PhaseID" />
</toolkit:DataField>
<toolkit:DataField Label="Resource">
<ComboBox x:Name="cbResource"
SelectedItem="{Binding PhaseID, Mode=TwoWay}" DisplayMemberPath="PhaseDescription" SelectedValue="PhaseID" />
</toolkit:DataField>
<toolkit:DataField Label="Hours">
<TextBox
Text="{Binding Hours, Mode=TwoWay, StringFormat='n'}"/>
</toolkit:DataField>
<toolkit:DataField Label="Cost">
<TextBox
Text="{Binding Hours, Mode=TwoWay, StringFormat='c'}"/>
</toolkit:DataField>
</StackPanel>
</DataTemplate>
</toolkit:DataForm.EditTemplate>
</toolkit:DataForm>
</StackPanel>
Источник моих комбо-ящиков взят из другой таблицы, любой знает, как я могу заполнить это элементами. Действительно ценю это!
Спасибо,
Николас
2 ответа
Следуя ответу Ричардса, ознакомьтесь с Microsoft Unity и Caliburn.Micro, чтобы начать работу с MVVM. Я пытался внедрить MVVM сам, и это было ужасное дело. Библиотеки, которые я упомянул, значительно упрощают понимание MVVM и способы его реализации.
Удачи.
Создайте класс, который моделирует данные, которые нужны форме для всей ее привязки данных (включая комбинированные списки), и привязывает базу данных ItemsSource комбинированных списков к коллекции элементов, которые они должны отображать (представляются в виде свойства нового класса). Затем установите DataContext формы для экземпляра этого нового класса.
Обычно этот новый класс называется ViewModel, и это один из аспектов шаблона проектирования Model / View / ViewModel (MVVM).