你有一个自定义类(一个Button扩展类),其中我有一个类型为Control的自定义属性。 我需要这个属性来访问另一个控件来做某事。
该属性声明如下:
private Control mainTab = null;
public Control MainTab { get { return mainTab; } set { mainTab = value; } }
但在XAML中使用时:
// "mainTab" is the x:Name of another control in this window
<CustomClass MainTab="mainTab" ....></CustomClass>
我得到“Memeber MainTab无法识别或无法访问”。为什么?
答案 0 :(得分:0)
通过设置绑定的ElementName
属性来绑定指定的元素:
<local:CustomClass MainTab="{Binding ElementName=mainTab}" ... />
为了实现这一目标,MainTab
必须是dependency property:
public static readonly DependencyProperty MainTabProperty =
DependencyProperty.Register(
"MainTab", typeof(Control), typeof(CustomClass));
public Control MainTab
{
get { return (Control)GetValue(MainTabProperty); }
set { SetValue(MainTabProperty, value); }
}
答案 1 :(得分:-1)
您已在xaml中包含自定义类的命名空间,然后您可以使用自定义类
<Window x:Class="WpfApplication2.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:WpfApplication2"
Title="MainWindow" Height="350" Width="525">
<Canvas>
<local:CustomClass MainTab=""/>
</Canvas>
和班级是
namespace WpfApplication2
{
public class CustomClass
{
public Control MainTab { get; set; }
}
}