我有一个绑定到单个表后端的小型Windows客户端应用程序数据。 我在VS 2005中使用向导创建了一个DataSet,它自动创建底层适配器和GridView。我还有一个RichText控件并将其绑定到此DataSet。到目前为止一切都好,但是我需要在RichTextbox中显示数据之前动态替换某些字符(〜)。可以这样做。
答案 0 :(得分:0)
Binding richTextBoxBinding = richTextBox.DataBindings.Add("Text", bindingSource, "TheTextColumnFromTheDatabase");
richTextBoxBinding.Format += richTextBoxBinding_Format;
richTextBoxBinding.Parse += richTextBoxBinding_Parse;
在Format
事件中,将内部值转换为格式化表示:
private void richTextBoxBinding_Format(object sender, ConvertEventArgs e)
{
if (e.DesiredType != typeof(string))
return; // this conversion only makes sense for strings
if (e.Value != null)
e.Value = e.Value.ToString().Replace("~", "whatever");
}
在Parse
事件中,将格式化表示转换为内部值:
private void richTextBoxBinding_Parse(object sender, ConvertEventArgs e)
{
if (e.DesiredType != typeof(string))
return; // this conversion only makes sense for strings (or maybe not, depending on your needs...)
if (e.Value != null)
e.Value = e.Value.ToString().Replace("whatever", "~");
}
请注意,如果绑定是双向的,则只需要处理Parse
事件(即用户可以修改文本并将更改保存到数据库中)