Binding WPF int and int?

本文关键字:int and Binding WPF | 更新日期: 2023-09-27 18:33:17

我有这样的模板列。当我在其他列中设置属性时,我重新生成列并为网格调用 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;
    }
}

Binding WPF int and int?

出现此问题的原因是 xaml 中的空值和绑定已中断。所以它对int有用?但它对 int 不起作用。