Я новичок в зависимости. Я пытаюсь решить мою проблему в получении собственности моего контроля.
Я использую Syncfusion Syntax Editor, и я использую лицензию сообщества.
Вот ссылка на редактор синтаксиса
https://help.syncfusion.com/wpf/syntaxeditor/overview
На данный момент я смог динамически искать текст, используя привязку свойств из моей ViewModel.
Вот код, который я использую для поиска
public class EditControlSearchHelper
{
//https://thomasfreudenberg.com/archive/2010/08/01/binding-webbrowser-content-in-wpf/
public static readonly DependencyProperty FindTextProperty =
DependencyProperty.RegisterAttached("FindText", typeof(string), typeof(EditControlSearchHelper), new PropertyMetadata(OnFindTextChanged));
public static string GetFindText(DependencyObject dependencyObject)
{
return (string)dependencyObject.GetValue(FindTextProperty);
}
public static void SetFindText(DependencyObject dependencyObject, string FindText)
{
dependencyObject.SetValue(FindTextProperty, FindText);
}
private static void OnFindTextChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
var r = (EditControl)d;
r.Focus();
bool isFound = false;
int next = 0;
for (int i = next; i <= r.Lines.Count; i++)
{
if (i < r.Lines.Count && r.Lines[i].Text.Contains((string)e.NewValue))
{
Regex rr = new Regex(Regex.Escape((string)e.NewValue), RegexOptions.IgnorePatternWhitespace);
Match m = rr.Match(r.Lines[i].Text);
if (m.Success)
{
r.SelectLines(i, i, m.Index, m.Index + m.Length);
isFound = true;
}
}
}
if (isFound == false)
{
MessageBox.Show("The selected text from the pdf is not found please select another");
next = 0;
}
}
}
И я называю код в моем Xaml следующим образом
<syncfusion:EditControl e:EditControlSearchHelper.FindText="{Binding SearchText}" />
Мне нужно
Но эти свойства будут иметь свои значения, когда выделен текст, который у меня уже есть.
Итак, мой вопрос: как мне добавить другое свойство для тех, которые мне нужны? Используя свойство зависимости, как я могу вызвать Event selectionChanged в свойстве зависимости.
Надеюсь, вы понимаете мой английский.
Спасибо.