0
キャレット位置にRichTextBoxに挿入するテキストをListBoxから選択しました。選択したテキストをテキスト文字列の最後に挿入することができます。wtfツールキットを使用してRichTextBox mvvmのボタンからキャレットにテキストを挿入
RichTextBoxのキャレット位置をビューモデルに渡す方法がわかりません。
ここはプロジェクトのコードの一部です。
<Button x:Name="AddItemBtn" Content="Add Item" HorizontalAlignment="Left" Margin="417,10,0,0" VerticalAlignment="Top" Width="100" Command="{Binding AddItemBtn}" CommandParameter="{Binding ElementName=AddItemList,Path=SelectedItem}"/>
<wpftoolkit:RichTextBox Grid.Column="0" Text="{Binding TestText, UpdateSourceTrigger=PropertyChanged}" x:Name="MyEditor" ScrollViewer.VerticalScrollBarVisibility="Auto" Margin="0" Height="Auto" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Width="Auto" IsDocumentEnabled="True" AcceptsTab="True" AcceptsReturn="True" >
<wpftoolkit:RichTextBox.Resources>
<Style TargetType="{x:Type Paragraph}">
<Setter Property="Margin" Value="0" ></Setter>
<Setter Property="FontSize" Value="15"></Setter>
</Style>
</wpftoolkit:RichTextBox.Resources>
<wpftoolkit:RichTextBox.TextFormatter>
<wpftoolkit:PlainTextFormatter/>
</wpftoolkit:RichTextBox.TextFormatter>
</wpftoolkit:RichTextBox>
ビューモデルの部分です。
private string _testText;
public string TestText
{
get
{
return _testText;
}
set
{
//_testText = _testText + value;
SetProperty(ref _testText, value);
}
}
public ICommand AddItemBtn
{
get;
set;
}
public void addItem(Tabbed selectedItem)
{
if (selectedItem != null)
{
MessageBox.Show(selectedItem.Command);
if (TestText != null)
{
TestText = TestText.ToString() + selectedItem.Command;
}
else
{
TestText = selectedItem.Command;
}
}
}
私はフロードキュメントを試しましたが、引き続きパラメータを正しく渡すことができませんでした。
これ以外にも、添付のビヘイビアでこれをすべて行うことができ、特定のビューのコードの後ろにビューモデルの半分で終わるのではなく、実際に(再)利用できるものがあります... – Haukinger