【问题标题】:Silverlight WCF RIA : How to use comboboxes in DataFormsSilverlight WCF RIA:如何在 DataForms 中使用组合框
【发布时间】:2011-10-02 05:10:07
【问题描述】:

我在这个问题上花了将近几个小时,我正在拉扯我的头发......我的代码如下:

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

我的组合框的来源来自另一个表,任何人都知道我如何用项目填充它。真的很感激!

谢谢,

尼古拉斯

【问题讨论】:

    标签: silverlight wcf data-binding ria


    【解决方案1】:

    根据 Richards 的回答,查看 Microsoft 的 Unity 和 Caliburn.Micro 以开始使用 MVVM。我试图自己实现 MVVM,这是一件可怕的事情。我提到的库使理解 MVVM 以及如何实现它变得更加容易。

    祝你好运。

    【讨论】:

      【解决方案2】:

      创建一个类,该类对表单的所有数据绑定(包括组合框)所需的数据进行建模,并将组合框的 ItemsSource 数据绑定到它们需要显示的项目集合(作为新类的属性出现) .然后将表单的 DataContext 设置为这个新类的实例。

      这个新类通常称为 ViewModel,这是 Model / View / ViewModel 设计模式 (MVVM) 的一个方面

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-02-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多