我有一个文本框样式的按钮来清除文本框的值,
但是当事件点击按钮时,该值消失并在释放按钮鼠标时重新出现。 下面的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