VoodooFrog
asked on
Beginner -- how to make a XAML User Control Bindable
I am making a simple demo to learn how to create a bindable user control. I have created a simple class:
I created a very simple user control:
What I would like to know is what do I need to do in order to be able to use the user control in context like a normal control. I can add this to the MainWindow like normal:
I would prefer to be able to create an instance of the class Person and simple bind the control on the main window to the Person class.
class Person
{
public string firstName;
public string lastName;
public Person(string first, string last)
{
firstName = first;
lastName = last;
}
}
I created a very simple user control:
<UserControl x:Class="Example.ExampleHRControl"
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"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300">
<Grid>
<TextBlock x:Name="textFirstName"></TextBlock>
<TextBlock x:Name="textLastName"></TextBlock>
</Grid>
</UserControl>
What I would like to know is what do I need to do in order to be able to use the user control in context like a normal control. I can add this to the MainWindow like normal:
<local:ExampleHRControl x:Name="Hr1"></local:ExampleHRControl>
and then I can address it through c# and add the value:Hr1.textFirstName.Text = "John";
Hr1.textLasttName.Text = "Doe";
I would prefer to be able to create an instance of the class Person and simple bind the control on the main window to the Person class.
ASKER
I'm assuming that the user control needs to have some modifications to allow it to be bindable? The user control had no code behind right now =D
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Set up your dataContext for your grid, and then Set the text to bind to the appropriate field.