public WordRefEditModel(DataRowView rv)
            : base(rv)
        {
            // prepare filter type id
            DataRowView rowMeaning = AdoUtils.FindRelatedRow(rv, Strings.MEANINGS, Strings.MEANING_ID);
            DataRowView rowWord = AdoUtils.FindRelatedRow(rowMeaning, Strings.WORDS, Strings.WORD_ID);
            Guid filterTypeId = (Guid)rowWord[Strings.TYPE_ID];

            // prepare filter word text
            DataRowView rowRefWord = AdoUtils.FindRelatedRow(rv, Strings.WORDS, Strings.WORD_ID);
            String filterWordText = (rowRefWord != null) ? (String)rowRefWord[Strings.WORD] : String.Empty;

            DataTable tableWords = AdoUtils.GetDataView(rv, Strings.WORDS).Table;

            this.finder = new WordFinderModel(tableWords, filterTypeId, filterWordText);
            this.finder.Words.CurrentChanged += new EventHandler(FinderWords_CurrentChanged);
            SynchCurrent();
        }
 public WordFinderModelValidator(WordFinderModel model)
 {
     Debug.Assert(model != null);
     this.model = model;
     Hook(model);
     Validate();
 }