绑定WPF int和int?

时间:2016-02-05 08:51:57

标签: c# wpf mvvm

我有这样的模板列。当我在其他列中设置属性时,我重新生成列并为网格调用UpdateLayout,之后我的组合框不会绑定int的属性但是当此属性为int时?一切正常。请帮我解释一下这种行为。

<TemplateColumnMetadata Name="User" Header="User"  MinWidth="150">
    <TemplateColumnMetadata.ColumnTemplate>
        <DataTemplate>
            <ComboBox    
                ItemsSource="{Binding Model.Users}"
                DisplayMemberPath="Name"
                SelectedValuePath="Id"
                SelectedValue="{Binding UserId, UpdateSourceTrigger=PropertyChanged}"       
                IsEnabled="{Binding IsCellEditable}">
            <ComboBox>
        </DataTemplate>
    <TemplateColumnMetadata.ColumnTemplate>           
<TemplateColumnMetadata>

1。此代码有效

public int? UserId
{
    get { return Model.UserId; }
    set
    {
        Model.UserId= value.Value;
    }
}

2。此代码不起作用

public int UserId
{
    get { return Model.UserId; }
    set
    {
        Model.UserId= value;
    }
}

1 个答案:

答案 0 :(得分:0)

问题发生了,因为空值来自xaml并且绑定被破坏了。所以它适用于int?但它不适用于int。