Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 2010 silverlight Ria服务中的组合框绑定_Visual Studio 2010_Silverlight_Combobox_Wcf Ria Services - Fatal编程技术网

Visual studio 2010 silverlight Ria服务中的组合框绑定

Visual studio 2010 silverlight Ria服务中的组合框绑定,visual-studio-2010,silverlight,combobox,wcf-ria-services,Visual Studio 2010,Silverlight,Combobox,Wcf Ria Services,我想通过域服务将combox与我的实体模型绑定 我的实体模型: 国家(ID、名称) 表2测试(主键字段、字段2、国家ID) 我创建了实体模型和域服务 我的Xaml: <riaControls:DomainDataSource AutoLoad="True" d:DesignData="{d:DesignInstance my:COUNTRIES, CreateList=true}" Height="0" Name="COUNTRIESDomainDataSource" QueryN

我想通过域服务将combox与我的实体模型绑定

我的实体模型: 国家(ID、名称) 表2测试(主键字段、字段2、国家ID)

我创建了实体模型和域服务

我的Xaml:

    <riaControls:DomainDataSource AutoLoad="True" d:DesignData="{d:DesignInstance my:COUNTRIES, CreateList=true}" Height="0" Name="COUNTRIESDomainDataSource" QueryName="GetCOUNTRIESQuery" Width="0">
        <riaControls:DomainDataSource.DomainContext>
            <my:DomainService1 />
        </riaControls:DomainDataSource.DomainContext>
    </riaControls:DomainDataSource>

    <riaControls:DomainDataSource AutoLoad="True" d:DesignData="{d:DesignInstance my:TABLE_TEST, CreateList=true}" Height="0" Name="TABLE_TESTDomainDataSource" QueryName="GetTABLE_TESTQuery" Width="0">
        <riaControls:DomainDataSource.DomainContext>
            <my:DomainService1 />
        </riaControls:DomainDataSource.DomainContext>
    </riaControls:DomainDataSource>

    <ComboBox Name="COUNTRIESComboBox"
              DataContext="{Binding ElementName=COUNTRIESDomainDataSource, Path=Data}" ItemsSource="{Binding}"
              DisplayMemberPath="ID"
              SelectedValuePath="NAME"
      SelectedValue="{Binding ElementName=TABLE_TESTDomainDataSource, Path=COUNTRY_ID}">
    </ComboBox>

组合框加载了正确的值(所有国家/地区),但看起来它没有与表\u TEST绑定。当我更改表_TEST的寄存器时,组合的值不会更改

我做错了什么?我看了很多例子,但没有一个是相同的Escnario,具有域数据源和实体模型

我和silverlight 5一起工作


谢谢

DomainDataSource非常不适合作为Silverlight组合框的数据源。到目前为止,我在您描述的用例中找到了最可靠的。事实上,他建议:

1) 不要使用DomainDataSource填充组合框

你可以 我认为这是激烈的或过度的反应,但我坚持这个原则 正式建议尽管你会在其他地方看到一些简单的样本, 我认为你最好在使用DDS时避免使用DDS 组合框。对于更复杂的组合框,DDS不可缩放 情景

特别是,您需要在final属性中将组合框标记为异步

<ComboBox Name="COUNTRIESComboBox"
          DataContext="{Binding ElementName=COUNTRIESDomainDataSource, Path=Data}" ItemsSource="{Binding}"
          DisplayMemberPath="ID"
          SelectedValuePath="NAME"
          SelectedValue="{Binding ElementName=TABLE_TESTDomainDataSource, Path=COUNTRY_ID}"
          ex:ComboBox.Mode="Async">
</ComboBox>


此示例不适用于我。好的,他描述了同样的情况,但是他使用了一个我不想要的个性化组合框。如果不实现我自己的组合框扩展,我无法相信silverlight无法解决这个问题……它是一个标准的组合框。出现问题的主要原因是DomainDataSource是异步的,可能会在设置SelectedValue后完成ItemsSource的加载。最终结果是您将丢失所选的值。如果不想使用扩展,请确保先加载itemssource,然后设置selectedvalue。这就是分机的作用。顺便说一下,我完全同意你的看法。Silverlight的级别太低,需要经过多年的打磨或第三方工具包才能使其对快速LOB开发有用。您知道如何从DomainDataSource对象设置de-SelectedValue属性吗?如果您坚持使用DomainDataSource,然后,在加载表\u TESTDomainDataSource DDS之前,必须确保已加载的COUNTRIESDomainDataSource。将“自动加载”设置为false,然后侦听事件。这是一个很大的工作,大约每半页的时间,并很难遵循。