2011-08-18 76 views
0

我有数据网格中列的是一个文本框控件,都设定为双向的结合。网格被绑定到可观察的集合。 问题:如果我在输入文本框中输入某个值,收集得到填充。现在如果我清除该文本框相同的情况并未反映到该集合中。我的绑定属性是可空的。Silverlight的数据网格双向结合

Thanks N Advance

+0

清除TextBox应该使属性“空”,而不是“空”。你能证实这是怎么回事吗? – AbdouMoumen

+0

对于字符串领域中,使得它作为空的,但在整数的情况下,我得到这个问题 –

回答

1

检查Visual Studio中的输出窗口是否存在绑定错误。您应该看到一条警告,表示没有从空字符串到整数的隐式转换。

你可以使用一个ValueConverter执行此任务。

看到其他途径此相关的问题。请注意,有些可能不适用,因为有WPF的焦点。

WPF binding not working properly with properties of int type

0

您可以使用

<TextBox IsReadOnly="True" Text="{Binding BUApprovalQty, Mode=TwoWay, TargetNullValue=''}"></TextBox> 
0

我不知道您的问题可能是对的,可是我试过以下,它按预期工作:

我有一个简单的Person类:

public class Person : ObservableObject 
{ 
    private string name; 
    public string Name 
    { 
     get { return name; } 
     set 
     { 
      if (name == value) 
       return; 
      name = value; 
      RaisePropertyChanged(() => Name); 
     } 
    } 

    private int? age; 
    public int? Age 
    { 
     get { return age; } 
     set 
     { 
      if (age == value) 
       return; 
      age = value; 
      RaisePropertyChanged(() => Age); 
     } 
    } 
} 

我也有一个简单的Vie wModel与ObservableCollection<Person>称为Data。答,这是我的XAML:

<sdk:DataGrid Name="dataGrid" ItemsSource="{Binding Data}" AutoGenerateColumns="False" 
       SelectedItem="{Binding SelectedPerson, Mode=TwoWay}" Grid.Row="1"> 
    <sdk:DataGrid.Columns> 
     <sdk:DataGridTextColumn Binding="{Binding Name, Mode=TwoWay}"/> 
     <sdk:DataGridTextColumn Binding="{Binding Age, Mode=TwoWay}"/> 
    </sdk:DataGrid.Columns> 
</sdk:DataGrid> 

我检查它是如何工作的通过设置在二传手断点我Age财产,它显示了正在添加作为null

希望这有助于价值;)