あなたが説明した動作を再現できません。また、Text プロパティのバインド定義でエラーが発生したと思います (その場合は、デバッグ セッション中に Visual Studio の出力ウィンドウでバインド エラーが表示されるはずです)。
そうあるべきだと思う
Text="{Binding IdSearch,
しかし、あなたのクラス構造がわからないので、わかりません。
プロパティの遅延と更新が期待どおりに機能することを示すために、小さな例を作成しました。プロパティ IdSearch のセッターに BreakPoint を設定して例を実行すると、指定された遅延時間の後にセッターが呼び出されることがわかります。単語をどれだけ速く入力しても問題ありません。
XAML:
<Window x:Class="WpfApplication2.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:WpfApplication2"
Title="MainWindow"
Width="525"
Height="350">
<Window.Resources>
<local:Dummy x:Key="CompassLogView" />
</Window.Resources>
<Grid>
<TextBox Text="{Binding IdSearch, Mode=TwoWay, Source={StaticResource CompassLogView}, UpdateSourceTrigger=PropertyChanged, Delay=2000}" />
</Grid>
</Window>
C#:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace WpfApplication2 {
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window {
public MainWindow() {
InitializeComponent();
}
}
public class Dummy {
private string _idSearch;
public string IdSearch {
get { return _idSearch; }
set {
if (_idSearch != value && value != null) {
_idSearch = value;
//NotifyPropertyChanged();
//SearchForID(_idSearch);
}
}
}
}
}