我是数据绑定的新手,所以也许这个问题看起来很愚蠢。 我使用了来自http://wpftoolkit.codeplex.com/的Xceed WPF Toolkit的DataGridControl,我认为它与使用中的DataGrid控件非常相似。我打算将DataGridControl SelectedItem绑定到Grid内容。相关的控件和对象变量是:
GridKaryawan --> DataGridControl
Grid --> without name, for displaying details
karyawans --> ObservableCollection<BiodataKaryawan> --> collection of business objects
selKaryawan --> (intended to be) the selected business object
* The business object "BiodataKaryawan" has already implemented INFC.
到目前为止,我一直在做(只显示相关部分):
<xcdg:DataGridControl x:Name="GridKaryawan" ItemsSource="{Binding Path=karyawans}" ReadOnly="True"
SelectedItem="{Binding Path=selKaryawan, Mode=TwoWay}">
....
....
</xcdg:DataGridControl>
代码背后:
public ObservableCollection<BiodataKaryawan> karyawans { get; set; }
public BiodataKaryawan selKaryawan { get; set; }
在网格上:
<Grid DataContext="{Binding Path=selKaryawan, Mode=TwoWay}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition />
....
....
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
....
....
</Grid.RowDefinitions>
<Label Grid.Row="0">Nama:</Label>
<Label Grid.Row="1">Panggilan:</Label>
....
....
<TextBox Grid.Column="1" Grid.Row="1" x:Name="txtNama" Text="{Binding Nama}"/>
<TextBox Grid.Column="1" Grid.Row="2" x:Name="txtPanggilan" Text="{Binding Panggilan}" />
....
....
</Grid>
我已成功将DataGridControl.SelectedItem绑定到Grid。但是我想在后面的代码中使用“selKaryawan”对象来绑定它们,因为表单还支持创建新的“BiodataKaryawan”,并且我打算使用“Create New”按钮将新的BiodataKaryawan对象分配给selKaryawan。 但绑定失败了。当我在datagrid中选择一行时,细节没有显示为何时将其绑定到“GridKaryawan.SelectedItem”。我哪里做错了?还是可以呢?
提前感谢您的回答。
答案 0 :(得分:0)
我认为您需要在代码隐藏中实现INotifyPropertyChanged并在selKaryawan属性的setter中引发PropertyChanged事件