【发布时间】:2014-04-30 23:34:47
【问题描述】:
所以我有这个问题:
- 我创建了一个 UserControl(基本上是一个文本框和标签)。我可以使用依赖属性绑定此用户控件。
- 我有一个 ListView,我可以在其中将文本框放入数据模板并将“文本”属性绑定到绑定值。
到目前为止一切顺利。但现在,如果我尝试将 UserControl 置于相同的场景中,DependencyProperty 将停止工作。
代码如下:[ListView]
<ListView x:Name="DtContactDetailListView" ItemsSource="{Binding}">
<ListBox.ItemTemplate>
<DataTemplate>
<UserControl:tbx label="{Binding detail}" text="{Binding value}"/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListView>
这种情况下的绑定在列表视图之外,在表单的其他部分时起作用......所以它不是我的 DepedencyProperty 的问题。也可以用 UserControl 代替 Textbox,并添加完全相同的 Binding 也可以。但它在这个下不起作用......为什么?!
更新 根据要求,我更新了 UserControl 的代码。请记住,当将其绑定到窗口或页面上的其他元素时,这非常有效。只是在列表视图中不起作用。
Public Sub New()
InitializeComponent()
Me.DataContext = Me
End Sub
'TextBox property
Public Shared ReadOnly tbxTextProperty As DependencyProperty = DependencyProperty.Register("text", GetType([String]), GetType(tbx), New FrameworkPropertyMetadata(String.Empty))
Public Property text() As [String]
Get
Return GetValue(tbxTextProperty).ToString()
End Get
Set(value As [String])
SetValue(tbxTextProperty, value)
End Set
End Property
【问题讨论】:
-
您的 UserControl 的邮政编码。这里的代码看起来不错。
-
什么是
UserControl:tbx?也许tbx:UserControl? -
UserControl 是我保存用户控件的项目的名称,tbx 是用户控件本身的名称。
标签: wpf xaml binding dependency-properties