小编jfi*_*204的帖子

成员表达式无法从可为空的十进制数转换为对象

我正在处理一个 MVC 项目,并希望将一个属性的名称传递给 Html.TextboxFor 方法。这是我的视图模型

public class RuleViewModel<T> where T : class, IValidatableObject
{
    private T _rule;
    public T RuleModel
    {
        get
        {
            return _rule
                ?? (_rule = Activator.CreateInstance<T>());
        }
    }

    public RuleMetadata Metadata { get; set; }

    public Expression<Func<RuleViewModel<T>, Object>> GetParameterByName(PropertyInfo pi)
    {
        var fieldName = Expression.Parameter(typeof(RuleViewModel<T>), "x");
        var fieldExpression = Expression.PropertyOrField(Expression.Property(fieldName, "RuleModel"), pi.Name);
        var exp = Expression.Lambda<Func<RuleViewModel<T>, Object>>(fieldExpression, fieldName);
        return exp;
    }

}
Run Code Online (Sandbox Code Playgroud)

然后在视图中我这样做

  @foreach (var prop in Model.RuleModel.GetType().GetProperties())
    {
        var result = Model.Metadata.Columns.SingleOrDefault(m => m.ColumnName == prop.Name); …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc linq-expressions

5
推荐指数
1
解决办法
998
查看次数

Wpf ToggleButton 命令绑定数据触发器

我有一个切换按钮,它有两个绑定到按钮 IsChecked 属性的数据触发器。在数据触发器中,我设置按钮内容及其命令属性。我遇到的问题是,当您单击按钮时,数据触发器正在更改命令值,然后触发命令。是否可以先命令触发,然后再触发数据?这是代码。

 <ToggleButton x:Name="commandToggleButton" Grid.Row="0"  Height="30" HorizontalAlignment="Left" Margin="26,24,0,0"  VerticalAlignment="Top" Width="75">
                <ToggleButton.Style>
                    <Style TargetType="ToggleButton">
                        <Style.Triggers>
                            <DataTrigger Binding="{Binding ElementName=commandToggleButton, Path=IsChecked}" Value="False">
                                <Setter Property="Content" Value="Build" />
                                <Setter Property="FontWeight" Value="Bold" />
                                <Setter Property="Command" Value="{Binding Build}" />
                            </DataTrigger>
                            <DataTrigger Binding="{Binding ElementName=commandToggleButton, Path=IsChecked}" Value="True">
                                <Setter Property="Content" Value="Cancel" />
                                <Setter Property="FontWeight" Value="Bold" />
                                <Setter Property="Command" Value="{Binding CancelBuild}" />
                            </DataTrigger>
                        </Style.Triggers>
                    </Style>
                </ToggleButton.Style>
            </ToggleButton>
Run Code Online (Sandbox Code Playgroud)

我希望发生的是,当第一次单击按钮时将触发 Build 命令,然后第二次单击按钮时将触发 CancelBuild 命令。

data-binding wpf datatrigger

0
推荐指数
1
解决办法
7320
查看次数