我有这样的事情:
<DataGridTemplateColumn Header="Occurences" Width="Auto">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=Occurences, Converter={StaticResource ListConverter}, Mode=TwoWay}" Margin="5,5,10,5"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
<DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<myCustomControls:OccurencesManualEntry/>
</DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate>
</DataGridTemplateColumn>
对于当前行,当我在此网格的另一列时,是否可以获取 <myCustomControls:OccurencesManualEntry/>
以便我可以设置其某些属性?
答案 0 :(得分:2)
是否有可能获得
<myCustomControls:OccurencesManualEntry/>
所以我可以设置一些属性?
不,这不是因为OccurencesManualEntry
控件仅在“Occurences”单元格处于编辑模式时才存在。
您可以将依赖项属性添加到OccurencesManualEntry
控件并将此绑定绑定到数据对象的source属性:
<myCustomControls:OccurencesManualEntry SomeProperty="{Binding SourceProperty}"/>
然后,您可以从另一个单元格设置此源属性:
<DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<TextBox TextChanged="TextBox_TextChanged" />
</DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate>
private void TextBox_TextChanged(object sender, TextChangedEventArgs e)
{
TextBox txtBox = sender as TextBox;
var yourDataObject = txtBox.DataContext as YourDataClass;
yourDataObject.SourceProperty = "value...";
}
确保数据类实现INotifyPropertyChanged接口,并在source属性的setter中引发PropertyChanged
事件。