小编Adi*_*ter的帖子

web.downloadstring路径中的非法字符

我正在尝试使用正则表达式从网站中检索名称.但是,当我运行程序时,我使用"路径中的非法字符"得到错误.这是代码:

private void button1_Click(object sender, EventArgs e)
{
    List<string> givenNames = new List<string>();

    WebClient web = new WebClient();

    for (int i = 10000; i <= 33852; i++)
    {   
        string numberurl = i.ToString();
        string mainurl = "www.cpso.on.ca/docsearch/details.aspx?view=1&id=+" + numberurl;
        String html = web.DownloadString(mainurl);

        Match m = Regex.Match(html, @"</strong>\s*(.+?)\s*&nbsp;", RegexOptions.Singleline);

        string givenName = m.Groups[1].Value;
        givenNames.Add(givenName);
    }
    listBox1.DataSource = givenNames; 
}
Run Code Online (Sandbox Code Playgroud)

错误发生在String html = web.DownloadString(mainurl);.我尝试使用HttpUtility.UrlEncode但它仍然无法正常工作.我很感激帮助.

c# webforms

4
推荐指数
1
解决办法
5976
查看次数

如何在metro应用程序中设置页面背景

我有奇怪的问题.我无法在metro应用中为我的页面设置背景.下面是我的xaml结构的简单视图

<Page Background="White">
    <ListView Background="Red">

    </ListView>
</Page>
Run Code Online (Sandbox Code Playgroud)

问题是页面的背景是黑色的.所以我在黑色背景上设置了红色矩形(ListView区域).我希望我的页面是白色的.我看到几个例子,似乎我做得很好.我也试过刷子,但结果相同.

xaml microsoft-metro windows-8 winrt-xaml

4
推荐指数
1
解决办法
1万
查看次数

通过后台代码设置 DataGridTextColumn.ElementStyle

我的用户界面中有一个数据网格。数据表将绑定到它。因为数据表可能有不同的格式,所以我在后面的代码中为网格添加了列和绑定值。见下文:

for (int iLoop = 0; iLoop < dtGroup.Columns.Count; iLoop++)
{
    DataGridTextColumn dgColumn = new DataGridTextColumn();
    dgColumn.Header = dtGroup.Columns[iLoop].ColumnName;
    dgColumn.Binding = new Binding(dtGroup.Columns[iLoop].ColumnName);


    this.dgGroupMatrix.Columns.Add(dgColumn);
}
Run Code Online (Sandbox Code Playgroud)

我想要的是让网格单元格的背景颜色基于值。

我可以通过 XAML 做到这一点。

<DataGrid.Columns>
    <DataGridTextColumn Binding="{Binding Path= operation_name}" Header="operation_name">
        <DataGridTextColumn.ElementStyle>
            <Style TargetType="{x:Type TextBlock}">
                <Style.Triggers>
                    <Trigger Property="Text" Value="V31">
                        <Setter Property="Background" Value="LightGreen"/>
                    </Trigger>
                </Style.Triggers>
            </Style>
        </DataGridTextColumn.ElementStyle>
    </DataGridTextColumn>
</DataGrid.Columns>
Run Code Online (Sandbox Code Playgroud)

但是我不能在 XAML 中设置网格的列,因为这个网格会有不同的格式。

我能做什么?

c# wpf xaml datagrid

4
推荐指数
1
解决办法
6815
查看次数

为什么BackgroundWorker不需要在ProgressChanged事件处理程序中调用?

由于ProgressChanged事件处理程序是从事件处理程序中的某个地方引发的DoWork,因此它们不应该在异步操作线程DoWork上调用,而线程也在运行,而不是UI线程,因此需要调用或BeginInvoke操作控件?

我的猜测是在ReportProgress方法中发生了一些魔法,但它怎么知道,哪一个是调用ProgressChanged事件处理程序的正确线程?

.net c# backgroundworker

4
推荐指数
1
解决办法
591
查看次数

如何使用泛型将我的类转换为动态类型<T>

我有如下功能.

private IList<ContactList> getEmptyRow()
{
    var _ContactList = new List<ContactList>();
    _ContactList.Add(new ContactList()
    {
        Email = string.Empty,
        Name = string.Empty
    });

    return _ContactList;
}
Run Code Online (Sandbox Code Playgroud)

我想把我的班级ContactList改为

private IList<T> getEmptyRow() {  ..... T.Add(new T()....
Run Code Online (Sandbox Code Playgroud)

这可能吗 ?如何 ?
每个建议都将不胜感激.

c# generics

4
推荐指数
1
解决办法
1049
查看次数

更改对象值时不刷新DataContext

我有一个grid,它DataContext是从代码后面分配的:

CustomerDataGrid.DataContext = _customerobj;
Run Code Online (Sandbox Code Playgroud)

当某些函数正在执行时,_customerobj对象会发生变化:

_customerobj = obj;
Run Code Online (Sandbox Code Playgroud)

但是DataContext根据新的对象细节不会更新.如果我使用以下内容它会更新:

_customerobj = obj;
CustomerDataGrid.DataContext = _customerobj;
Run Code Online (Sandbox Code Playgroud)

每次_customerobj更新或错过了什么时,我是否需要遵循相同的规定?

.net c# data-binding wpf

4
推荐指数
1
解决办法
3144
查看次数

物业进口什么时候满意?

房产进口什么时候满意?我认为它们会在构造函数之前得到满足,因为属性在构造函数运行之前被初始化,但是以下示例ImportedClass在构造函数中显示为null.

我知道我可以通过使用ImportingConstuctor解决这个问题; 这是为了理解何时满足房产进口.

public MyClass
{
  [Import]
  public ImportedClass ImportedClass {get;set;}

  public MyClass()
  {
      //Imported Class is null at this point, so nothing can be done with it here.
  }
}
Run Code Online (Sandbox Code Playgroud)

c# mef

4
推荐指数
1
解决办法
1238
查看次数

MEF ComposeParts.如何处理插件异常

我在网上搜索了一个解决方案,但我没有找到任何东西.

在我的C#应用​​程序中,我使用MEF来实现插件模式.一切都很好.但是今天我试图弄清楚如果插件构造函数由于某种原因抛出异常会发生什么.

要加载我正在使用的插件CompositionContainer.ComposeParts.如果由于某种原因,其中一个X插件抛出异常,则此方法将失败并且不会加载任何内容.

有没有办法只捕获单个异常,记录并继续?

先感谢您.

.net plugins mef exception c#-4.0

4
推荐指数
1
解决办法
1052
查看次数

更改avalon编辑中的默认行高

我正在使用avalon编辑编写一个自定义软件,我正在寻找一种方法来使线之间的空间(高度)更大.目前,每当用户结束写一行并想要写另一行时,我就被迫添加一个空行.

我已经开始研究TextView似乎计算defaultLineHeight 的类,但我唯一能够影响的是视觉插入符号的高度,而不是内容本身.

目前我正在考虑使每一对线都看不见但我希望有一种更简单的方法来实现在线之间添加更多空间的简单操作.

这是TextView我正在检查的类的方法.欢迎任何提示或提示.

void CalculateDefaultTextMetrics()
{
    if (defaultTextMetricsValid)
    {
        return;
    }

    defaultTextMetricsValid = true;
    if (formatter != null)
    {
        var textRunProperties = CreateGlobalTextRunProperties();
        using (
            var line = formatter.FormatLine(
                new SimpleTextSource("x", textRunProperties),
                0,
                32000,
                new VisualLineTextParagraphProperties { defaultTextRunProperties = textRunProperties },
                null))
        {
            wideSpaceWidth = Math.Max(1, line.WidthIncludingTrailingWhitespace);
            defaultBaseline = Math.Max(1, line.Baseline);
            defaultLineHeight = Math.Max(1, line.Height);
        }
    }
    else
    {
        wideSpaceWidth = FontSize / 2;
        defaultBaseline = FontSize;
        **defaultLineHeight = FontSize + 3; // bigger …
Run Code Online (Sandbox Code Playgroud)

c# avalonedit

3
推荐指数
1
解决办法
907
查看次数

.Net 4.5中事件的标记扩展

WPF没有定义用于事件的标记扩展,第三方能够创建可以与事件一起使用的标记扩展.现在,WPF 4.5支持事件的标记扩展.任何人都可以通过优雅的例子帮助如何在.Net 4.5中实现这一目标吗?

wpf events markup-extensions .net-4.5 wpf-4.5

3
推荐指数
1
解决办法
1371
查看次数