私はWPFプログラムでカスタム検索ダイアログを実装しようとしています。親ウィンドウは、Observable CollectionにバインドされているListViewです。子ウィンドウから親ウィンドウ内の関数を呼び出す
私は検索フォームを使用して新しいウィンドウを作ってきましたし、それはそうのように初期化されている:私は(オーナーウィンドウに)呼び出ししようとしています
searchForm sf = new searchForm(_QPCollection);
sf.Owner = this;
sf.Show();
と、私はこの機能を持っている:
public void selectIndex(int index)
{
ListViewItem toSelect = listView1.Items[index] as ListViewItem;
toSelect.Focus();
}
そのようselectIndexを呼び出そうと子ウィンドウ(searchForm)で次に
:
public void SearchJob_Click(object sender, RoutedEventArgs e)
{
if (sJob.Text == "" || sJob.Text == null) { return; }
for (int i = findCount; i < _QPCollectionSearch.Count; i++)
{
if (i == _QPCollectionSearch.Count - 1) { i = 0; }
if (_QPCollectionSearch[i].jobNumAndFlow.IndexOf(sJob.Text) > -1)
{
findCount = i;
Owner.selectIndex(i);
}
}
}
は私がERを取得ror:System.Windows.Windowには "selectIndex"の定義が含まれていません。
_QPCollection
は、検索がループする観察可能なコレクションです。私は検索ロジックが動作しているが、私はFocus()
親ウィンドウ内のListViewのインデックスとは思えない。
私の最初の考えは、インデックスを渡すことができる公開関数を持っていて、それが焦点を当てることでしたが、親ウィンドウにある子ウィンドウから関数を呼び出す方法を見つけることができないようです。
私はこれに完全に間違っていますか?このanswerはWinFormsのようですが、WPFの親ウィンドウとそのパブリック関数/プロパティにアクセスする方法があると確信しています。
私はとても素敵です。 –
ありがとう!非常にきれいで「正しい」感じ。 – WSkid