失去焦点和更新源

时间:2012-09-24 12:34:23

标签: c# wpf mvvm focus

我有一个MainView和一个ChildView以及一个MainViewModel和一个ChildViewModel。

在我的MainView上,我得到了一个通过命令绑定到VM的SaveButton。

单击该按钮时,ChildView上的文本框将失去焦点并更新其VM。

我该怎么做?

        <DataGridTemplateColumn  Header="FOR [percent]" Width="*" >
            <DataGridTemplateColumn.CellTemplate>
                <DataTemplate>
                    <Knowles_ShiftreportEditor_Controls:NumberTextbox  Text="{Binding ForValue, Mode=TwoWay, UpdateSourceTrigger=LostFocus}" AllowsDecimal="True"/>
                </DataTemplate>
            </DataGridTemplateColumn.CellTemplate>
        </DataGridTemplateColumn>

1 个答案:

答案 0 :(得分:0)

我有按钮IsDefault = true或Keybinding的相同问题。我所做的是在我的app.xaml.cs OnStartup()

中注册一个eventhandler
    protected override void OnStartup(StartupEventArgs e)
    {
        EventManager.RegisterClassHandler(
            typeof(Button), 
            ButtonBase.ClickEvent, 
            new RoutedEventHandler(
                (sender, args) =>
                    {
                        if (sender != null && sender is Button)
                        {
                            (sender as Button).Focus();
                        }
                    }));

     }

现在焦点设置为按钮,文本框绑定工作就像预期的那样。