我已经建立了这个用户控件:
<UserControl
x:Class="ScannerApp.Custom_Controls.LocationAndQuantity"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:ScannerApp.Custom_Controls"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
d:DesignHeight="20">
<Grid Background="White">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Border x:Name="border" Background="{Binding Color}">
<TextBlock x:Name="locationTxt" Text="{Binding Location}" HorizontalAlignment="Center"></TextBlock>
</Border>
<TextBlock x:Name="quantityTxt" Text="{Binding Quantity}" Grid.Column="1" HorizontalAlignment="Center" TextWrapping="Wrap" VerticalAlignment="Top"/>
</Grid>
</UserControl>
我需要能够修改TextBlocks中的边框背景颜色和文本。但是,如果我创建一个新的自定义控件,我无论如何都无法设置它。
我试过了:
LocationAndQuantity customControl = new LocationAndQuantity(Color = "red", Location = "A-01-01", Quantity = "23");
或者这个:
LocationAndQuantity customControl = new LocationAndQuantity();
customContrl.border = ... //this just gives me error right away.
答案 0 :(得分:0)
您可以通过以下方式定义属性来绑定用户控件
public partial class LocationAndQuantity : UserControl
{
public Brush Color { get; set; }
public string Location { get; set; }
public int Quantity { get; set; }
//The class must have default constructor
public LocationAndQuantity()
{
this.InitializeComponent();
}
public LocationAndQuantity(string c,string l, int q)
{
this.Color = new SolidColorBrush((Color)ColorConverter.ConvertFromString(c));
this.Location = l;
this.Quantity = q;
InitializeComponent();
DataContext = this;
}
}
使用:
LocationAndQuantity customControl = new LocationAndQuantity("red", "A-01-01", 10);
//then add to stackpannel for example
stackPanel.Children.Add(customControl);