我有一个应用程序,我希望将所有使用特定样式的文本框设置为TargetNullValue=''
的默认绑定设置,方法是将其包含在文本框的样式定义中。
例如,我有一个窗口,带有以下默认样式设置的文本框
<baseTypes:WorkspaceViewBase.Resources>
...
<Style TargetType="TextBox" BasedOn="{StaticResource TextBoxValidation}">
<Setter Property="Width" Value="100" />
</Style>
...
</baseTypes:WorkspaceViewBase.Resources>
其中一个文本框目前设置为
<TextBox Grid.Row="1" Grid.Column="1" Text="{Binding MyValue, TargetNullValue=''}" Visibility="{Binding MyVisibility}"/>
如何设置&#39; TextBoxValidation&#39;样式最多包括TargetNullValue=''
所以所有的texbox都包含它作为默认值?
答案 0 :(得分:2)
您可以创建一个自定义绑定类型,为TargetNullValue
属性设置默认值:
public class MyBinding : Binding
{
public MyBinding()
: base()
{
TargetNullValue = string.Empty;
}
public MyBinding(string path)
: base(path)
{
TargetNullValue = string.Empty;
}
}
并在XAML标记中替换所有{Binding}
:
<TextBox Grid.Row="1" Grid.Column="1" Text="{local:MyBinding MyValue}" Visibility="{Binding MyVisibility}"/>
您不能使用Style
执行此操作,因为{Binding}
不属于Style
,也不属于Loop Until rgfound.Offset(0, 3).Value = MyInputTwo.Value
。