91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

c#中怎么使AvalonEdit MVVM兼容

c#
小億
138
2023-09-28 00:33:01
欄目: 編程語言

要使AvalonEdit與MVVM兼容,可以按照以下步驟進行操作:

  1. 創建一個用于綁定 AavalonEdit 的自定義控件,例如 AvalonEditControl

  2. AvalonEditControl 中,添加一個 Text 屬性,用于綁定 AvalonEdit 的文本內容。

  3. AvalonEditControl 中,添加一個 TextChanged 事件,用于在文本內容發生變化時觸發。

  4. AvalonEditControl 中,使用 BindingText 屬性與 AvalonEdit 的 Text 屬性進行綁定,并將 UpdateSourceTrigger 設置為 PropertyChanged,以便在每次文本內容變化時更新綁定源。

  5. AvalonEditControlTextChanged 事件處理程序中,通過 Text 屬性的設置來觸發文本內容變化的通知。

以下是示例代碼:

public class AvalonEditControl : UserControl
{
public static readonly DependencyProperty TextProperty = DependencyProperty.Register(
"Text", typeof(string), typeof(AvalonEditControl), new FrameworkPropertyMetadata(null, FrameworkPropertyMetadataOptions.BindsTwoWayByDefault));
public string Text
{
get { return (string)GetValue(TextProperty); }
set { SetValue(TextProperty, value); }
}
public AvalonEditControl()
{
var avalonEdit = new AvalonEdit.TextEditor();
avalonEdit.SetValue(AvalonEdit.TextEditor.TextProperty, Text);
avalonEdit.TextChanged += AvalonEdit_TextChanged;
Content = avalonEdit;
}
private void AvalonEdit_TextChanged(object sender, EventArgs e)
{
var avalonEdit = (AvalonEdit.TextEditor)sender;
Text = avalonEdit.Text;
}
}

使用 MVVM 模式時,將 AvalonEditControl 添加到視圖中,并將 Text 屬性與 ViewModel 中的相應屬性進行綁定即可。

例如,假設 ViewModel 中有一個 Code 屬性,用于存儲 AvalonEdit 的文本內容:

public class MyViewModel : INotifyPropertyChanged
{
private string _code;
public string Code
{
get { return _code; }
set
{
_code = value;
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(Code)));
}
}
public event PropertyChangedEventHandler PropertyChanged;
}

在 XAML 中,可以這樣綁定 AvalonEditControl

<local:AvalonEditControl Text="{Binding Code, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />

這樣,Code 屬性的變化會自動更新到 AvalonEditControl 上,同時 AvalonEditControl 的文本內容變化也會自動更新到 Code 屬性上。

0
古浪县| 左贡县| 旬阳县| 绩溪县| 沙坪坝区| 共和县| 怀安县| 房山区| 白银市| 班戈县| 邛崃市| 镇江市| 千阳县| 东明县| 黑河市| 离岛区| 岱山县| 措勤县| 梅河口市| 安塞县| 齐齐哈尔市| 墨脱县| 陵川县| 南召县| 永胜县| 应用必备| 万宁市| 景泰县| 阳高县| 泗水县| 和田县| 昭苏县| 油尖旺区| 阿拉尔市| 阿坝县| 宜章县| 大埔县| 武宣县| 安陆市| 枣庄市| 武邑县|