Silverlight WCF RIA: как использовать комбинированные списки в DataForms - PullRequest
0 голосов
/ 10 июля 2011

Я потратил почти несколько часов на эту проблему, и я дергаю себя за волосы ... Мой код выглядит следующим образом:

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

0 голосов
/ 10 июля 2011

Следуя ответу Ричардса, ознакомьтесь с Microsoft Unity и Caliburn.Micro, чтобы начать работу с MVVM. Я пытался внедрить MVVM сам, и это было ужасное дело. Упомянутые мною библиотеки значительно облегчают понимание MVVM и способы его реализации.

Удачи.

0 голосов
/ 10 июля 2011

Создайте класс, который моделирует данные, которые нужны форме для всей ее привязки данных (включая поля со списком), и привязывает базу данных ItemsSource к списку элементов, который нужно отобразить (представлен как свойство нового класса) , Затем установите DataContext формы для экземпляра этого нового класса.

Обычно этот новый класс называется ViewModel, и это один из аспектов шаблона проектирования Model / View / ViewModel (MVVM)

...