0

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>
4

1 に答える 1

0

ボタン IsDefault=true またはキーバインディングで同じ問題があります。私がやったことは、 app.xaml.cs OnStartup() にイベントハンドラーを登録することです

    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();
                        }
                    }));

     }

フォーカスがボタンに設定され、テキストボックスのバインドが期待どおりに機能するようになりました。

于 2012-09-24T12:49:53.587 に答える