Причина, по которой вас предупреждают о снижении производительности, заключается в том, что, по большей части, если вам нужно обновлять свойство источника при каждом нажатии клавиши, это потому, что вам нужно что-то, что происходит при изменении значения свойства. В конце концов, если вам не нужно, чтобы это «что-то» происходило, вам было бы наплевать, когда свойство будет обновлено, если это в конечном итоге произошло.
Реальное влияние на производительность полностью зависит от того, что это «что-то». И это полностью зависит от вашего приложения. Если это «что-то» форматирует и отображает значение в другом TextBlock
, выполнение этого при каждом нажатии клавиши, вероятно, не будет заметно. Если он фильтрует 10 000 строк DataTable
и обновляет привязанный к нему DataGrid
, он, вероятно, будет.
Так как вы говорите? Ну, есть два пути:
1) Понять вашу заявку. Если вы знаете, что делает приложение, когда вы обновляете исходное свойство, вы можете предсказать, будет ли это делать при каждом нажатии клавиши. Когда вы говорите: «Я думаю, мне было интересно, может ли это быть на первый взгляд нормально, но на самом деле это может вызвать проблемы в определенных ситуациях, о которых я не знаю», - вы на самом деле говорите: «Что произойдет, если я не не знаете, что делает мое приложение, когда пользователь нажимает клавишу? "
2) Если вы не знаете, что делает ваше приложение, когда пользователь нажимает клавишу, профилируйте ее.