我有一個文本框樣式的按鈕來清除文本框的值,
但是當事件點擊按鈕時,該值消失並在釋放按鈕鼠標時重新出現。 下面的XAML代碼:如何從模板重置TextBox的TextBox文本?只有在xaml
<ResourceDictionary .....
<Style x:Key="SearchBoxTemplate" TargetType="{x:Type TextBox}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TextBox}">
<Border BorderBrush="LightGray" BorderThickness="1">
<StackPanel Orientation="Horizontal" >
<Grid Width="{TemplateBinding Width}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="8.6*" />
<ColumnDefinition Width="1.4*" />
</Grid.ColumnDefinitions>
<TextBox Background="Transparent" x:Name="searchTextBox" Grid.Column="0"
HorizontalAlignment="Stretch" BorderThickness="0"
Text="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Text, Mode=TwoWay}"
Height="{TemplateBinding Height}" />
<Button Background="Transparent"
x:Name="clearButton" Content="X"
Margin="2" Width="Auto" Height="Auto"
Grid.Column="1"/>
</Grid>
</StackPanel>
</Border>
<ControlTemplate.Triggers>
<Trigger SourceName="clearButton" Property="IsPressed" Value="True" >
<Setter TargetName="searchTextBox" Property="TextBox.Text" Value="" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
而且使用像:
<TextBox Style="{StaticResource SearchBoxTemplate}"
Width="200"
Text="{Binding SearchLastName,
UpdateSourceTrigger=PropertyChanged,
Mode=TwoWay}" />
// C# SearchViewModel
internal class SearchViewModel : ViewModelBase
{
private string _searchLastName;
public string SearchLastName
{
get { return this._searchLastName; }
set
{
this._searchLastName = value;
OnPropertyChanged("SearchLastName");
}
}
......
怎麼了,這可能嗎? 有人可以幫助我嗎?
Regards
您的目標是明確的綁定屬性,或者你只是想改變它顯示在控制的文本? – Chris
兩者,我想如果一個人也被刪除了! 這是不正確的? – MacGile