小编Fed*_*gui的帖子

如何将F#类型提供程序生成的类型公开给C#和XAML

所以,我正在使用XML Type Provider从XML文档创建类型.

XML文件中的一个元素具有以下Date属性:

<Edit Date="06/30/2015 16:57:46"
      ... />
Run Code Online (Sandbox Code Playgroud)

这当然导致类似这样的类型:

type Edit = 
    inherit XmlElement

    member Date:  DateTime
    ...
Run Code Online (Sandbox Code Playgroud)

有没有办法可以添加以下代码:

 member this.LocalTime
    with get() =
        this.Date.ToLocalTime()
Run Code Online (Sandbox Code Playgroud)

结果Edit类型?

这样做的原因是我绑定了EditXAML的实例,我真的不想写一个IValueConverter只是为了做到这一点.

编辑:

所以,我才意识到这些类型不适合我的XAML.相反,我得到的实例FSharp.Data.Runtime.BaseTypes.XmlElement当然甚至不包含我在F#代码中看到的属性.我还需要从C#代码中使用这些类型,甚至在那里我只得到XmlElement没有属性的s

我知道我可以在XAML中使用XPath来导航其中的XElements,但是我仍然需要一种以强类型方式访问结果对象模型的方法,包括C#和XAML.

EDIT2:

所以现在我写了一个这样的类型扩展:

type Catalog.Edit with
    member this.LocalTime with get() = this.Date.ToLocalTime()
Run Code Online (Sandbox Code Playgroud)

我看到F#代码中的成员就像生成的成员一样.然而,这种方法有两个缺点:

1 - 它迫使我把我namespace改成a module,这不太方便,因为这些类型都是从C#代码中消耗掉的,在那里我把它们看作模块类的嵌套类,这很难看.

2 - 我仍然无法从C#和XAML中看到这个成员(也不是生成的成员).

在描述的场景中实现这一点的正确方法是什么?

c# xaml f# type-providers f#-data

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

如何在WPF中保存应用程序主题名称

我正在使用Devexpress和WPF.用户可以通过devexpress提供不同的主题.

 ThemeManager.ApplicationThemeName = Theme.MetropolisDarkName; //MetropolisDarkName is name of a Theme.
Run Code Online (Sandbox Code Playgroud)

在我的应用中,用户可以选择要应用的任何主题.但如果他关闭应用程序并再次打开它,主题更改就不一样了.我希望保存这些更改,因此如果用户在应用主题后再次打开它,则应保存并应用更改.

我应该在数据库中保存主题的名称还是有任何其他方法来解决这个问题.我需要你的建议.谢谢.

.net c# wpf devexpress

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

构造复杂对象图的计算表达式

给出以下类型:

type Trip = {
  From: string
  To: string
}

type Passenger = {
   Name: string
   LastName: string
   Trips: Trip list
}
Run Code Online (Sandbox Code Playgroud)

我正在使用以下构建器:

type PassengerBuilder() = 
  member this.Yield(_) = Passenger.Empty

  [<CustomOperation("lastName")>]
  member __.LastName(r: Passenger, lastName: string) = 
    { r with LastName = lastName }

  [<CustomOperation("name")>]
  member __.Name(r: Passenger, name: string) = 
    { r with Name = name }

type TripBuilder() = 
  member __.Yield(_) = Trip.Empty

  [<CustomOperation("from")>]
  member __.From(t: Trip, f: string) = 
    { t with From = f }

  // …
Run Code Online (Sandbox Code Playgroud)

f# computation-expression

2
推荐指数
1
解决办法
96
查看次数

TextBlock 中的部分粗体文本

我以单行方式从数据库获取文本。例如“你好,我的名字是开发人员”。我需要将此文本的部分以粗体显示并将其放入 TextBlock 中。

对于我使用的代码:

overview_text.Text = overView;
Run Code Online (Sandbox Code Playgroud)

其中overview_text TextBlock是TextBlock,overView是来自db的字符串。

我可以根据需要更改数据库字符串,但我需要单个字符串,例如我需要的是:

"Hello my <bold> name </bold> is the Developer"
Run Code Online (Sandbox Code Playgroud)

你能帮我解决这个问题吗?

c# wpf

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

如何在Tab Control的TabPage中添加行?

我的示例窗体表单应用程序中有一个Tab控件.这包含两个标签页.

有没有办法添加如下突出显示的行?

在此输入图像描述

c# winforms

0
推荐指数
1
解决办法
302
查看次数

在C#中制作一个简单的计时器

我还是c#的新手,我不知道如何每隔10秒调用一次updateTime()方法

public class MainActivity : Activity
{
    TextView timerViewer;
    private CountDownTimer countDownTimer;

    protected override void OnCreate (Bundle bundle)
    {
        base.OnCreate (bundle);
        SetContentView (Resource.Layout.Main);

        timerViewer = FindViewById<TextView> (Resource.Id.textView1);

        // i need to invoke this every ten seconds
        updateTimeinViewer();
    }

    protected void updateTimeinViewer(){
        // changes the textViewer
    }
}
Run Code Online (Sandbox Code Playgroud)

如果有办法创建一个新的线程或类似的东西,我会很乐意得到一些帮助.

我正在使用Xamarin Studio

c# android xamarin

0
推荐指数
1
解决办法
5801
查看次数

不包含带2个参数的构造函数?

我目前正在做一些类编码,并想知道我的项目出了什么问题?

class ContactPerson
{
    string name;
    ContactNo telNo;

    public ContactPerson(string in_Name, ContactNo in_No)
    {
        name = in_Name;
        telNo = new ContactNo();


    }
    public string getName()
    {
        return name;
    }
    public ContactNo getContactInfo()
    {
        return telNo;
    }
    public void setName(string in_Name)
    {
        name = in_Name;
    }
    public void setContactInfo (ContactNo in_No)
    {
        telNo = in_No;
    }
}
Run Code Online (Sandbox Code Playgroud)

}

class ContactNo
{
    string contactType;
    string contactNo;

    public void setContactType(string in_Type)
    {
        contactType = in_Type;
    }
    public string getContactType()
    {
        return contactType;
    } …
Run Code Online (Sandbox Code Playgroud)

c# class

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