0

鉴于下面的简化模型,我想编写一条规则MyCollection contains MyField,但我得到的只是要选择的数据源项列表,就好像集合的 ValueInputType 仅适用于用户一样。我应该在模型中改变什么来实现这一点?

public class MyModel
{
    [Field(Settable = false, DataSourceName = "MyDataSource")]
    public int MyField { get; set; }

    [Field(Settable = false, ValueInputType = ValueInputType.All, DataSourceName = "MyDataSource"))]
    public List<int> MyCollection { get; set; }
}
4

1 回答 1

0

根据此处的文档,数值类型的集合只能使用 ValueInputType.User(查找文章中间的“重要!”标题之一)。因此,您不能在规则条件中使用 MyField 字段的值。您需要创建一个规则方法来实现:

public bool Contains(List<int> collection, [Parameter(DataSourceName = "MyDataSource")] int i)
{
    return collection.Contains(i);
}

有了这样的规则方法,您的规则可能如下所示:

Check if Contains(MyCollection, OneOfTheMembersOfMyDataSource) is True
于 2020-06-02T20:02:38.257 回答