我一直关注着Silverlight text editor sample。它为我提供了许多功能,如格式化,剪贴板支持,打印等。
该示例还允许使用InlineUiContainer插入DataGrids。
我的问题是插入的DataGrid被禁用,而我的要求是用户可以编辑DataGrid的内容。
如何启用插入RichTextBox的InlineUiContainer?
答案 0 :(得分:2)
RichTextBox必须是ReadOnly才能使控件响应事件。我通过默认将RichTextBox设置为ReadOnly然后在焦点上变得可编辑来解决这个问题。
我的问题是在DataGrid中有RichTextBox,它还在每个RichTextbox中嵌入了其他控件。听起来你的RTB可能永远不会失焦ReadOnly,因为只有一个RTB。
你必须考虑一些在某些条件下将RTB置于ReadOnly模式的策略。
答案 1 :(得分:0)
我遇到了同样的问题,但没有在网上找到任何答案......
这就是我所做的,有点难看,但它有效:
创建自定义控件并将数据网格放入其中。 将以下代码添加到自定义控件:
public CustomControl()
{
InitializeComponent();
this.IsEnabledChanged += EnableChanged;
}
private int counter = 0;
private void EnableChanged(object sender, DependencyPropertyChangedEventArgs e)
{
if (counter == 0)
{
this.IsEnabled = (bool) e.OldValue;
counter = 1;
return;
}
counter = 0;
}
祝你好运!