我制作了一个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