我使用了一个自定义控件,该控件具有一个依赖属性标题,该标题绑定到其中的标签。
我可以在xaml中使用字符串设置标题属性,但不能使用{Binding title}设置标题属性。
如果我使用有效的<Button content={Binding title}
。
我真的不知道在哪里看这个,因为我猜string是string ..?
作品
<Button Content="{Binding title}" Click="Button_Click_2">
作品
<PluginInterface:uc_item Title="TEST" OnClick="Button_Click_2"></PluginInterface:uc_item>
不起作用
<PluginInterface:uc_item Title="{Binding title}" OnClick="Button_Click_2"></PluginInterface:uc_item>
依赖属性
public string Title
{
get { return (string)GetValue(TitleProperty); }
set
{
SetValue(TitleProperty, value);
}
}
public static readonly DependencyProperty TitleProperty =
DependencyProperty.Register("Title", typeof(string), typeof(uc_item),
new FrameworkPropertyMetadata(default(string),
FrameworkPropertyMetadataOptions.BindsTwoWayByDefault));
这是控件的容器
<ItemsControl Name="ic_searchengines" >
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
IM设置了另一个班级中项目控件的项目
searchengines = new ObservableCollection<searchengine>();
main.ic_searchengines.ItemsSource = searchengines;
第一个示例中带有按钮的绑定确实显示了内容中的绑定文本; 在第二个示例中,在cusotm用户控件上设置字符串将在usercontrol上显示文本; 第三个示例,与第一个按钮等效的绑定的确在usercontrl上显示为空白。
谢谢!展望
答案 0 :(得分:0)
有一个自定义用户控件的数据上下文集-通过绑定与后台代码中的属性来馈送控件。我必须将其删除,以便可以在外部设置正确的数据上下文(多个实例在其中使用对不同属性的绑定),并向其中的单个控件添加了带有findancestor的修改版本:DataContext =“ {Binding RelativeSource = {RelativeSource FindAncestor, AncestorType = local:uc_item}}“