【WPF】 自定义控件的自定义属性
前言在一个页面,重复用到同一个自定义控件时,该如何对控件分别举行数据绑定呢?这时间可以赋予控件一个自定义的属性,来完成此利用。
一、自定义控件部门
为自定以控件设置 DataTag和SelectedI属性。
<UserControl x:Class="Module3DS.Components.DataList"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:Module3DS.Components"
mc:Ignorable="d"
d:DesignHeight="250" d:DesignWidth="300">
<GroupBox Grid.Column="0" Header="数据列表">
<DataGrid x:Name="PrjDg" HeadersVisibility="Column" SelectedIndex="{Binding SelectedI}" ItemsSource="{Binding}" Tag="{Binding DataTag}"ScrollViewer.VerticalScrollBarVisibility="Visible" CanUserAddRows="False" AutoGenerateColumns="False" CanUserSortColumns="False" MouseDoubleClick="PrjDg_MouseDoubleClick">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding NUM}"Header="一" Width="1*"IsReadOnly="True"/>
<DataGridTextColumn Binding="{Binding STAKEKM}" Header="二" IsReadOnly="True" Width="2*"/>
</DataGrid.Columns>
</DataGrid>
</GroupBox>
</UserControl>
控件后端:
public partial class DataList : UserControl
{
public DataList()
{
InitializeComponent();
//
BingdingFun("TagData", DataGrid.TagProperty);
BingdingFun("SelectedI", DataGrid.SelectedIndexProperty);
}
private void BingdingFun(string name,DependencyProperty dp) {
Binding bing = new Binding(name);
bing.Source = this;
bing.Mode = BindingMode.TwoWay;
BindingOperations.SetBinding(PrjDg, dp, bing);
}
public static readonly DependencyProperty ISProperty = DependencyProperty.Register("TagData", typeof(Object), typeof(DataList));
public static readonly DependencyProperty SIProperty = DependencyProperty.Register("SelectedI", typeof(int), typeof(DataList));
public Object DataTag
{
get { return (Object)GetValue(ISProperty); }
set { SetValue(ISProperty, value); }
}
public int SelectedI {
get { return (int)GetValue(SIProperty); }
set { SetValue(SIProperty, value); }
}
}
二、在页面中利用
<Components:DataList Grid.Column="0" x:Name="Data3DList" DataTag="Data3D" />
<Components:DataList x:Name="IndexDataList" DataTag="DataIndex" />
如此一来,我们的控件就有了DataTag和SelectedI属性,假如你利用的MVVM,还可以做到如下这样
<Components:DataList x:Name="IndexDataList" DataTag="{Binding 属性}" SelectedI= "{Binding 属性}"/>
总结
以上就是如何为自定义控件添加自定义属性了,我们下次再见,拜拜。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]