I have made this user control:
<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>
I need to be able to modify the border Background color and text in the TextBlocks. However, if I create a new Custom control, I am not able to set it anyhow.
I tried this:
LocationAndQuantity customControl = new LocationAndQuantity(Color = "red", Location = "A-01-01", Quantity = "23");
or this:
LocationAndQuantity customControl = new LocationAndQuantity();
customContrl.border = ... //this just gives me error right away.
You can bind user control by defining properties following way
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;
}
}
Use:
LocationAndQuantity customControl = new LocationAndQuantity("red", "A-01-01", 10);
//then add to stackpannel for example
stackPanel.Children.Add(customControl);
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.