.net 向Silverlight控件添加自定义属性
将自己的属性添加到现有Silverlight控件的最佳方式是什么?例如,我想将一个自定义类与DataGrid关联,并能够在Expression Blend中设置该自定义类的属性 这是一件容易做的事吗 谢谢.net 向Silverlight控件添加自定义属性,.net,silverlight,xaml,.net,Silverlight,Xaml,将自己的属性添加到现有Silverlight控件的最佳方式是什么?例如,我想将一个自定义类与DataGrid关联,并能够在Expression Blend中设置该自定义类的属性 这是一件容易做的事吗 谢谢 AJ通过继承,这很容易做到 例如,这里有一个datagrid,它在输入击键时触发验证事件 namespace SLCommon { public delegate void VaditateSelectionEventHandler(object sender, EventArgs e
AJ通过继承,这很容易做到 例如,这里有一个datagrid,它在输入击键时触发验证事件
namespace SLCommon
{
public delegate void VaditateSelectionEventHandler(object sender, EventArgs e);
/// <summary>
/// Fires a validate event whenever the enter key or the left mouse button is pressed
/// </summary>
public class EventDatagrid : DataGrid
{
public event VaditateSelectionEventHandler Validate;
public EventDatagrid()
: base()
{
this.MouseLeftButtonUp += new MouseButtonEventHandler(OnMouseLeftButtonUp);
}
protected override void OnKeyDown(KeyEventArgs e)
{
if (e.Key != Key.Enter)
base.OnKeyDown(e);
else
{
e.Handled = true;
Validate(this, e);
}
}
protected void OnMouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
Validate(this, e);
}
}
}
名称空间SLCommon
{
公共委托void VaditateSelectionEventHandler(对象发送者,事件参数e);
///
///每当按下enter键或鼠标左键时激发验证事件
///
公共类EventDatagrid:DataGrid
{
公共事件VaditateSelectionEventHandler验证;
publicEventDataGrid()
:base()
{
this.MouseLeftButtonUp+=新的MouseButtonEventHandler(OnMouseLeftButtonUp);
}
受保护的覆盖无效OnKeyDown(KeyEventArgs e)
{
如果(e.Key!=Key.Enter)
base.OnKeyDown(e);
其他的
{
e、 已处理=正确;
验证(此,e);
}
}
MouseLeftButtonUp上的受保护无效(对象发送器、MouseButtonEventArgs e)
{
验证(此,e);
}
}
}
XAML侧:
<slc:EventDatagrid x:Name="toto" Validate="toto_Validate"
AutoGenerateColumns="True" IsReadOnly="True" Width="auto" MaxHeight="300">
</slc:EventDatagrid>
注意验证事件处理程序
在这里,您可以在xaml文件中添加控件myobj(请确保在页面顶部声明正确的xmlns:
命名空间)并设置其属性
我不知道blend,但它确实以同样的方式工作。另一个选项是使用附加的行为/属性。 这是继承/组合参数-要扩展类X的功能,您是从类X继承并扩展它,还是创建包含类X的类Y 下面是某人通过附加行为将像素捕捉添加到SL的示例:
您好,您真的这样做了吗?我的印象是,子类Silverlight控件在运行时无法初始化。是的,我已经这样做过很多次了。你想要一个活生生的例子吗?它很有效,非常感谢。但如果你在谷歌上搜索,就会发现各种各样的问题。早期版本的SL不具备这种功能吗?事实上,处理Silverlight 3是件好事,因为每次搜索都会返回关于SL2 beta版或SL1版中某个bug或缺失功能的结果。。。