0

我是 VS-Lightswitch 2012 的新手,也是 silverlight 的新手。在电灯开关数据库中,我想存储测量值表。每个 MeasuredValues 表都有一定的 Unity。所以我有一个 Unity 表(如“m”、“mm”、“°C”),每个 Unity 都有一个可能的 UnityConversions 表(如“mm to m”、“mm to cm”)。例如,Unity“m”没有转换“m to °C”,因为这根本没有意义。每个 UnityConversion 都有一个它 ConvertsTo 的 Unity。Unityconversion 例如:0.00112m = 1.12mm

因此,当用户创建或编辑测量值表时,他应该能够从所有现有的单位中选择单位。但是当必须转换 Unity 时,应该只能将当前 Unity 的 UnityConversion 表中的值转换为合适的 Unity。到目前为止,所有表都已定义好。但是如何做 UnityConversion 的事情呢?我想最简单的方法是在 MeasuredValue 的 Unity 下方创建一个按钮,该按钮会显示一个“模态窗口选择器”,用户可以在其中选择 UnityConversion。

但是如何用当前 Unity 的 UnityConversions 填充“模态窗口选择器”?我已经尝试过“模态窗口选择器”,它显示了所有现有的 Unity,但它应该显示可能的 UnityConversions。

这就是我坚持的地方,欢迎任何想法提前谢谢你

哎呀++++编辑2012年12月14日++++

MValue
+-Id: Integer
+-Value: Double
+-Unity: Unity (relationship)
Unity:
+-Id: Integer
+-Name: String
+-ShortName: String
+-Conversions: collection of UnityConversion (relationship)
+-Converts     collection of UnityConversion (relationship)
+-MValues      collection of MValue (relationship)
UnityConversion:
+-Id: Integer
+-Name: String
+-Factor: Double
+-ConvertTo: Unity (relationship)
+-Unities:   Unity (relationship)
the relationship between Unity and UnityConversion is doubly so it looks like:
Unity                        UnityConversion
+-Conversions(visible) -------> +-Unities    (invisi.)
+-Converts   (invisi.) <------- +-ConvertsTo (visible)

我的问题:双重关系是可以做到的,但是否允许这样做?如果允许,为什么屏幕设计器在为 MValuesListDetail 创建新屏幕时不显示 UnityConversions 的详细信息?

4

1 回答 1

1

这很容易做到,但解释起来有点冗长。您需要基于UnityConversion表添加一个带有整数参数的参数化查询(请参阅创建参数化查询)。

在屏幕设计器中:

  • 单击Add Data Item Select Query,然后单击您创建的参数化查询的名称
  • 单击添加的查询,并展开查询参数(请参阅 为查询参数提供值
  • 单击您之前添加的整数参数的名称
  • 在“属性”窗格中,输入绑定值 ( Me.MeasuredValueProperty.ID )
  • 单击ACB 控件( AutoCompleteBox ) & 在其属性中,将Choices值从Auto更改为参数化查询的名称

这应该将UnityConversion属性中的值限制为适合所选Unity的值。

于 2012-12-08T12:59:56.233 回答