在WPF中,如何基于TextBox.Text值选中复选框?
如何基于文本框选中复选框。文本值 我对WPF有点经验。我知道可以做什么,但在如何做方面没有太多经验 如何根据在WPF中,如何基于TextBox.Text值选中复选框?,wpf,Wpf,如何基于文本框选中复选框。文本值 我对WPF有点经验。我知道可以做什么,但在如何做方面没有太多经验 如何根据\uu postCloseAuditBy的文本值通过XAML选中\u postCloseAudit复选框?如果文本长度大于零,则应选中该复选框 <CheckBox x:Name="__postCloseAudit" Tag="{Binding LoginId}" Click="__postCloseAudit_Click"> &
\uu postCloseAuditBy
的文本值通过XAML选中\u postCloseAudit
复选框?如果文本长度大于零,则应选中该复选框
<CheckBox x:Name="__postCloseAudit"
Tag="{Binding LoginId}"
Click="__postCloseAudit_Click">
<WrapPanel>
<TextBox x:Name="__postCloseAuditBy"
Width="94"
Text="{Binding PostCloseAuditBy }" />
<TextBox x:Name="__postCloseAuditOn"
Width="132"
Text="{Binding PostCloseAuditOn }" />
</WrapPanel>
</CheckBox>
编写一个属性,并将属性绑定到文本框的文本。转换器的工作是将文本作为输入,并根据其长度决定检查状态;这将在一个单独的类中,所以它不是完全的代码隐藏,但它很接近
转换器示例:
[ValueConversion(typeof(string), typeof(bool?))]
public class TextToIsBoolConverter : IValueConverter
{
public object Convert(object value, Type targetType,
object parameter, CultureInfo culture)
{
var s = (string)value;
return s.Length > 0;
}
public object ConvertBack(object value, Type targetType,
object parameter, CultureInfo culture)
{
throw new NotSupportedException();
}
}
而绑定看起来像:
<CheckBox x:Name="__postCloseAudit"
Tag="{Binding LoginId}"
Click="__postCloseAudit_Click"
IsChecked="{Binding ElementName=__postCloseAuditBy, Path=Text, Converter={StaticResource myConverter}}">
如果您使用的是MVVM,那么您的viewmodel应该包含转换器的功能,并根据PostCloseAuditBy
的值公开一个计算出的属性。您从未见过转换器上方使用的属性,它做了什么?@JohanLarsson:它是。您不需要它,它具有信息作用(文档建议设计时工具可以通过反映包含转换器的程序集而受益)。我只是把它从MSDN示例中去掉,因为它已经存在了。@Jon;有趣。我终于想到我可以用一个转换器,因为这是我所知道的。但是,我从未想过可以将Path属性设置为Text属性。但是,事后看来,这是完全有道理的;否则,这将很容易O) 我被束缚在班级(模特)的束缚中;我使用ValueConversion
使编程人员清楚了解转换器的用途。