我有这样的模板列。当我在其他列中设置属性时,我重新生成列并为网格调用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;
}
}
答案 0 :(得分:0)
问题发生了,因为空值来自xaml并且绑定被破坏了。所以它适用于int?但它不适用于int。