在DataGrid的DataTemplate

时间:2019-07-17 04:58:56

标签: c# wpf custom-controls

我制作了一个CustomControl,它是一个IPBox,名为IPAddress:

DependencyProperty

我想在public partial class IPBox : UserControl { public IPBox() { InitializeComponent(); IPAddress = "127.0.0.1"; } public static readonly DependencyProperty IPAddressProperty = DependencyProperty.Register("IPAddress", typeof(string), typeof(IPBox), new PropertyMetadata("127.0.0.1")); [Bindable(true)] public string IPAddress { get { return (string)GetValue(IPAddressProperty); } set { string[] splitValues = value.Split('.'); txtboxFirstPart.Text = splitValues[0]; txtboxSecondPart.Text = splitValues[1]; txtboxThridPart.Text = splitValues[2]; txtboxFourthPart.Text = splitValues[3]; SetValue(IPAddressProperty, value); } } 中的DataGrid中使用它:

DataGridTemplateColumn

绑定到<DataGrid ItemsSource="{Binding Devices}" Background="Black" AutoGenerateColumns="False"> <DataGrid.Columns> <DataGridTemplateColumn Header="IP Address" Width="150"> <DataGridTemplateColumn.CellTemplate> <DataTemplate> <Controls:IPBox IPAddress="{Binding OSCMessenger.Address, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" /> </DataTemplate> </DataGridTemplateColumn.CellTemplate> </DataGridTemplateColumn> </DataGrid.Columns> </DataGrid> <DataGridTemplateColumn Header="Port" Width="150"> <DataGridTemplateColumn.CellTemplate> <DataTemplate> <TextBlock VerticalAlignment="Center" Text="{Binding OSCMessenger.Port}" /> </DataTemplate> </DataGridTemplateColumn.CellTemplate> </DataGridTemplateColumn> 的{​​{1}}可以正常工作,但是由于某种原因,绑定到TextBlock的{​​{1}}无法正常工作。 我在OSCMessenger.Port中对此CustomControl进行了测试,并且工作正常,只有在OSCMessenger.Address中使用时,才抛出绑定错误消息。

为什么?

编辑-

这是IPBOX的XAML:

CustomControl

0 个答案:

没有答案