ElementName绑定自定义ItemsControl中的项目

时间:2011-10-11 11:14:18

标签: wpf itemscontrol

我正在寻找创建自定义ItemsControl,其中嵌套项使用ElementName绑定到另一个控件。对于标准的ItemsControl,这个工作正常,绑定按预期工作

<ItemsControl>
    <TextBox Text="{Binding Text, ElementName=test, UpdateSourceTrigger=PropertyChanged}"/>
</ItemsControl>
<TextBox x:Name="test"/>

但是,只要我使用继承自ItemsControl的自定义控件,如下所示

<!-- CustomItemsControl.xaml -->
<ItemsControl x:Class="MyControl.CustomItemsControl"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"/>

<!-- CustomItemsControl.xaml.cs -->
namespace MyControl
{
    public partial class CustomItemsControl 
    {
        public CustomItemsControl()
        {
            InitializeComponent();
        }
    }
}

<!-- Window.xaml -->
<local:CustomItemsControl>
    <TextBox Text="{Binding Text, ElementName=test, UpdateSourceTrigger=PropertyChanged}"/>
</local:CustomItemsControl>
<TextBox x:Name="test"/>

然后ElementName绑定不再有效。有没有其他人看过这个问题,知道如何解决它?

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

为什么需要CustomControl的xaml文件。您只需要在本地命名空间中创建一个继承自ItemsControl-

的类
public class CustomItemsControl : ItemsControl
    {

    }

它应该按照预期工作.. !!