how to add textboxes at the end in datatemplate - c#

I have a ListView which gives me correct information. I want to apped at the end of each row, two TextBoxes in which user can edit, can anyone guide me?
This is the result I want to see John Smith textbox textbox.
Here is my code below:
<ListView.ItemTemplate>
<DataTemplate>
<Label x:Name="lblPerson">
<Label.Content>
<TextBlock>
<TextBlock.Text>
<MultiBinding StringFormat="{}{0} {1}">
<Binding Path="FName" />
<Binding Path="LName" />
</MultiBinding>
</TextBlock.Text>
</TextBlock>
</Label.Content>
</Label>
</DataTemplate>
</ListView.ItemTemplate>

I don't know if I understand correctly what your problem is, but inside the DataTemplate you can use a StackPanel or a DockPanel and place the Label and anything else you can, something like this:
<ListView.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<Label x:Name="lblPerson">
<Label.Content>
<TextBlock>
<TextBlock.Text>
<MultiBinding StringFormat="{}{0} {1}">
<Binding Path="FName" />
<Binding Path="LName" />
</MultiBinding>
</TextBlock.Text>
</TextBlock>
</Label.Content>
</Label>
<TextBox Text="Something">
<TextBox Text="{Binding SomeField}">
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
Is this what you are asking? Regards

Related

XAML binding multiple properties in label content

I have two properties, Related_Id and PageNumber. I want to bind these two values to a single label.
XAML code
<StackPanel>
<sdk:Label x:Name="RelatedItemIdLabel"
HorizontalAlignment="Left"
VerticalAlignment="Top"
Content="{Binding CreateMessage.RelatedId}" />
</StackPanel>
current output: Related_Id
Desired output: Related_Id/ PageNumber
Could anyone help me to find a solution..
Thanks..
Try this:
<Label x:Name="RelatedItemIdLabel"
HorizontalAlignment="Left"
VerticalAlignment="Top">
<Label.Content>
<MultiBinding StringFormat=" {0}/{1}">
<Binding Path="" /> //insert field 1
<Binding Path="" /> //insert field 2
</MultiBinding>
</Label.Content>
</Label>
This is the code you're looking for :
<StackPanel>
<sdk:Label x:Name="RelatedItemIdLabel"
HorizontalAlignment="Left"
VerticalAlignment="Top">
<sdk:Label.Content>
<MultiBinding StringFormat=" {0}, {1}">
<Binding Path="{Binding CreateMessage.RelatedId}"/>
<Binding Path="{Binding CreateMessage.PageNumber}"/>
</MultiBinding>
</sdk:Label.Content>
</sdk:Label>
</StackPanel>

WPF Multibinding with Source and Path

I am writing the below code for implementing a Multibinding in WPF textblock
<TextBlock>
<TextBlock.Text>
<MultiBinding StringFormat="{}{0}-{1}">
<Binding Source="{Binding Path=localResource.bookdata_labelPageNO,Source={StaticResource LanguageManagerDynamic}}"/>
<Binding Path="PageNo"/>
</MultiBinding>
</TextBlock.Text>
</TextBlock>
I am trying to load a string like "Page xx" where xx is the page number which is a property of the binded model and the string "Page" is loaded from the resource
But i am getting runtime error on this line # XAML . What is causing the error ?
This was my previous working code
<TextBlock Text="{Binding PageNo,StringFormat=page. {0}}" />
Can You try Like this
<TextBlock>
<Run Text="Page" />
<Run Text="{Binding PageNo}" />
</TextBlock>
Ok for pure xaml solution you can do this, assuming your resources are loaded properly.
<Window.Resources>
<sys:String x:Key="Page">Page</sys:String>
</Window.Resources>
<TextBlock>
<TextBlock.Text>
<MultiBinding StringFormat="{}{0} {1}">
<Binding Source="{StaticResource Page}"/>
<Binding Path="PageNo" />
</MultiBinding>
</TextBlock.Text>
</TextBlock>

How to add multiple values in ToolTip in WPF?

I want to add data from 2 columns from a datagrid and display them using a single tooltip. I am able to achieve the result from 1 column only but when I try to concatenate the values doesn't show up.
<TextBlock Text="{Binding Message, Mode=OneWay}" Margin="4 0"
VerticalAlignment="Center" HorizontalAlignment="Stretch" >
<ToolTip>
<MultiBinding StringFormat="{}{0} - {1}">
<Binding RelativeSource="{RelativeSource Self}" Path="SourceName"/>
<Binding RelativeSource="{RelativeSource Self}" Path="Message"/>
</MultiBinding>
</ToolTip>
</TextBlock>
SourceName and Message are the values extracted from properties.
How do I show both of them in a single Tooltip ?
ToolTip should be a part of the TextBlock element
<TextBlock Text="{Binding Message, Mode=OneWay}" Margin="4 0"
VerticalAlignment="Center" HorizontalAlignment="Stretch" >
<TextBlock.ToolTip>
<TextBlock>
<TextBlock.Text>
<MultiBinding StringFormat="{}{0} - {1}">
<Binding Path="SourceName"/>
<Binding Path="Message" />
</MultiBinding>
</TextBlock.Text>
</TextBlock>
</TextBlock.ToolTip>
</TextBlock>
Probably, the bindings should be also changed if you want to get information from the DataContext and not from the visual element.

Changing format xxxxxxxxxx to xxx-xxx-xxxx

I have a textbox in WPF and I need to display text in xxx-xxx-xxxx format.
<TextBox FontSize="30" Text="{Binding MyString,UpdateSourceTrigger=PropertyChanged}" Grid.Row="3" MaxLength="10"></TextBox>
MyString is just property which sets value in TextBox into it for some other logic. Can I do it in XAML itself usng StringFormat?
You can try using the MaskedTextBox to specify the format of the input.
Example:
<wpfx:MaskedTextBox Mask="000-000-0000" />
Try this tutorial also.
As an option you could split the text in the code behind (or View Model) and bind each value separately
<TextBlock>
<TextBlock.Text>
<MultiBinding StringFormat="{0}-{1}-{2}">
<Binding Path="FirstPart" />
<Binding Path="SecondPart" />
<Binding Path="ThirdPart" />
</MultiBinding>
</TextBlock.Text>
</TextBlock>
Yes you can do this. Try the following:
<TextBlock>
<TextBlock.Text>
<MultiBinding StringFormat="{}{0}-whateverhercomes-andwhateverherecomes">
<Binding Path="MyString"/>
</MultiBinding>
</TextBlock.Text>
</TextBlock>

Using localized formatted string in WPF binding

I have a formatted string in a .resx file like so:
Blah: {0}
How do I use it in WPF binding to fill the {0} part?
i didn't tested it but...
https://social.msdn.microsoft.com/Forums/vstudio/en-US/f77ab886-2def-4cef-aed3-9ced24eb5776/using-stringformat-in-a-textblock-in-wpf?forum=wpf
so i guess you should do something like this :
<TextBlock Text="{Binding Path=MyStringParameter, StringFormat={Binding MyStringFormatResource}"/>
In addition Binding/StringFormat you can also use MultiBinding element.
<StackPanel>
<TextBox Name="countText" Text="4" />
<TextBox Name="totalText" Text="10" />
<TextBlock>
<TextBlock.Text>
<MultiBinding StringFormat="Select {0} of {1}">
<Binding ElementName="countText" Path="Text" />
<Binding ElementName="totalText" Path="Text" />
</MultiBinding>
</TextBlock.Text>
</TextBlock>
</StackPanel>
In a real sample you would bind something else but XAML elements but this shows you the idea.

Categories

Resources