gpt4 book ai didi

wpf - 如何告诉我的 ViewModel 用户正在更改 TextBox 中的文本?

转载 作者:行者123 更新时间:2023-12-04 14:44:41 25 4
gpt4 key购买 nike

所以假设我有一个 MVVM 应用程序,我希望用户填写 文本框 在他填写的时候 ,我想看看他是否输入了姓氏一个客户呢。

这是我如何让我的 ViewModel 知道用户何时拥有 更改了 ComboBox 中的项目 :

<ComboBox 
ItemsSource="{Binding Customers}"
ItemTemplate="{StaticResource CustomerComboBoxTemplate}"
Margin="20"
HorizontalAlignment="Left"
SelectedItem="{Binding SelectedCustomer, Mode=TwoWay}"/>

这是我如何让我的 ViewModel 知道用户何时拥有 移动 slider :
<Slider Minimum="0" 
Margin="10"
Width="400"
IsSnapToTickEnabled="True"
Maximum="{Binding HighestCustomerIndex, Mode=TwoWay}"
Value="{Binding SelectedCustomerIndex, Mode=TwoWay}"/>

这是我如何让我的 ViewModel 知道用户何时拥有 更改了 TextBox 中的文本并将焦点移开 从文本框:
<TextBox
Width="200"
Text="{Binding TypedCustomerName}"/>

但是我如何让我的 ViewModel 知道用户何时拥有 在他键入 时更改了 TextBox 中的文本,例如像这样的东西:

PSEUDO-CODE(由于 TextChanged 是一个事件而导致错误):
<TextBox
Width="200"
TextChanged="{Binding CurrentTextInTextBox}"/>

最佳答案

如果您愿意,您可以将其设置为在输入时更新,而不是仅在 TextBox 失去焦点时更新 ViewModel。 UpdateSourceTrigger默认情况下,TextBox 的 Text 绑定(bind)属性设置为 LostFocus,而不是像大多数其他控件一样的 PropertyChanged,但是您可以在绑定(bind)中显式设置它。通过这样做,VM 或 M 中的 TypedCustomerName 属性将随着 UI 中的更改而更新。

<TextBox
Width="200"
Text="{Binding TypedCustomerName, UpdateSourceTrigger=PropertyChanged}"/>

如果这不是您要查找的内容,您也可以使用 AttachedCommandBehaviors将 TextChanged 路由事件绑定(bind)到 View 模型中存在的 ICommand。

关于wpf - 如何告诉我的 ViewModel 用户正在更改 TextBox 中的文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1013208/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com