小编jsz*_*eti的帖子

部分声明不得指定不同的基类

伙计我是WPF的新手.

我有一个名为的wpf页面StandardsDefault.在后面的代码中 ,就像所有其他页面一样StandardsDefault 继承 Page.

<Page x:Class="namespace.StandardsDefault"

public partial class StandardsDefault : Page
Run Code Online (Sandbox Code Playgroud)

现在我创建了一个CountryStandards继承StandardsDefault而不是页面的新类.

<Page x:Class="namespace.CountryStandards"

public partial class CountryStandards : StandardsDefault
Run Code Online (Sandbox Code Playgroud)

我没有改变XAML.我收到的错误是

"部分声明'CountryStandards'不得指定不同的基类"

我认为问题可能是设计者没有继承同一个类.但是我需要以某种方式实现继承,因为有许多常用的方法可以在许多标准页面中使用,例如CountryStandards

谁能帮我吗?

c# wpf

51
推荐指数
3
解决办法
7万
查看次数

如何将新的DataRow添加到DataTable中?

我有一个DataGridView绑定到DataTable(DataTable绑定到数据库).我需要一个补充DataRowDataTable.我正在尝试使用以下代码:

dataGridViewPersons.BindingContext[table].EndCurrentEdit();
DataRow row = table.NewRow();

for (int i = 0; i < 28; i++)
{
    row[i] = i.ToString();
}
Run Code Online (Sandbox Code Playgroud)

但它不起作用,DataGridView从未添加过新的行.请告诉我,如何修复我的代码?

先感谢您.

c# datatable datagridview datarow

36
推荐指数
3
解决办法
19万
查看次数

在flowlayoutpanel中动态添加控件

在Windows窗体中,我可以通过执行以下操作动态添加控件:

for (int i = 0; i < 5; i++)
{
    Button button = new Button();
    button.Location = new Point(160, 30 * i + 10);

    button.Tag = i;
    this.Controls.Add(button);
}
Run Code Online (Sandbox Code Playgroud)

如何动态添加控件FlowLayoutPanel

c# dynamic-controls flowlayoutpanel winforms

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

Func <T,TResult>如何工作?

我正在创建一个Distinct扩展方法,我可以传递如下标准.

persons.Distinct(p => p.Name); 
Run Code Online (Sandbox Code Playgroud)

我从网上获得了代码,但我很难理解其目的Func<T, TResult>.此外,当我说p => p.Name我发送String Name或我发送完整的Person对象?这是新的Distinct方法:

public static class ExtensionMethods
{
    public static IEnumerable<T> Distinct<T>(
        this IEnumerable<T> list, Func<T,object> checker)
    {
        return list.Distinct(new GenericComparer<T>(checker)); 
    }
}

public class GenericComparer<T> : IEqualityComparer<T>
{
    private Func<T, object> _checker; 

    public GenericComparer(Func<T,object> checker)
    {
        _checker = checker; 
    }

    public bool Equals(T x, T y)
    {
        return _checker(x).Equals(_checker(y));
    }

    public int GetHashCode(T obj)
    {
        return _checker(obj).GetHashCode(); 
    }
}
Run Code Online (Sandbox Code Playgroud)

以下是用法:

static void Main(string[] args)
{ …
Run Code Online (Sandbox Code Playgroud)

c# lambda

19
推荐指数
2
解决办法
8017
查看次数

Policy15和Policy12有什么区别?

我有一个基本的服务主持人:

m_host = new ServiceHost(m_service, m_baseAddress);
ServiceMetadataBehavior behavior = new ServiceMetadataBehavior();
behavior.HttpGetEnabled = true;
behavior.MetadataExporter.PolicyVersion = PolicyVersion.Policy15;
m_host.Description.Behaviors.Add(behavior);
m_host.AddServiceEndpoint(
    typeof(IManagerService), 
    new BasicHttpBinding(), m_soapAddress);
m_host.Open();
Run Code Online (Sandbox Code Playgroud)

我的问题是如何知道要使用哪个PolicyVersion?MSDN不是很有帮助,似乎我已经知道如果我想要1.2或1.5 ......

PolicyVersion.Policy15属性

PolicyVersion.Policy12属性

c# wcf

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

C# - 后台工作者的CancelAsync()不起作用?

我想中止该过程但不能这样做,我正在使用后台工作程序和我的处理功能.

public void Init()
{
    bw = new BackgroundWorker();
    bw.WorkerSupportsCancellation = true;
    bw.DoWork += new DoWorkEventHandler(bw_DoWork);
    bw.RunWorkerCompleted += new RunWorkerCompletedEventHandler(bw_RunWorkerCompleted);
}

void bw_DoWork(object sender, DoWorkEventArgs e)
{
    if (bw.CancellationPending == true)
    {
        e.Cancel = true;
    }
    else
    {
        e.Result = abd();
    }
}

void bw_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
    if(e.Cancelled)
    {
        lbltext.content="Canceled";
    }

    else
    {
        lbltext.content="Completed";
    }
}

private void btncan_Click(object sender, RoutedEventArgs e)
{
    bw.CancelAsync();
}

private void btnstart_Click(object sender, RoutedEventArgs e)
{
    bw.RunWorkerAsync();
}
Run Code Online (Sandbox Code Playgroud)

我无法使用此代码中止该过程.功能abd()正在执行处理部分并返回结果.

请给我任何解决方案. …

c# backgroundworker

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

C#C++ Interop回调

我最近一直在修补C#到C++的互操作,特别是设置一个从C++ DLL调用的回调函数.

namespace TomCSharpDLLImport
{
    class Program
    {
        public delegate void TomDelegate(int a, int b);

        [DllImport("TomDllNative.dll", CallingConvention = CallingConvention.Cdecl)]
        public static extern void GetData();

        [DllImport("TomDllNative.dll", CallingConvention = CallingConvention.Cdecl)]
        public static extern void SetCallback(TomDelegate aCallback);

        static void Main(string[] args)
        {
            TomDelegate lTD = new TomDelegate(Program.TomCallback);

            SetCallback(lTD); //Sets up the callback

            int thread = Thread.CurrentThread.ManagedThreadId;

            GetData(); //This calls the callback in unmanaged code

            while (true) ;
        }

        //Callback function which is called from the unmanaged code
        public static void TomCallback(int a, int …
Run Code Online (Sandbox Code Playgroud)

c# c++ interop callback

8
推荐指数
2
解决办法
9741
查看次数

动态更改gridview列的标题文本

嗨,我正在使用ASP GridView.我声明了一个标签HeaderTemplate用于设置特定列的标题.如何动态更改特定按钮单击时的标题文本?

c# asp.net gridview

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

在创建Windows 8应用程序时保存页面之间的状态

我一直在使用Microsoft提供的C#或Visual Basic教程创建您的第一个Windows应用商店应用程序,但在页面之间导航时遇到一些保存状态的问题.

使用C#或Visual Basic创建您的第一个Windows应用商店应用

第3部分:导航,布局和视图

基本上我已经注意到,如果我从主页面导航到照片页面选择一张照片,导航回主页面,然后再次转到照片页面,它不记得所选的照片.我正在使用以下代码从主页面导航到照片页面.

private void photoPageButton_Click(object sender, RoutedEventArgs e)
{
    this.Frame.Navigate(typeof(PhotoPage));
}
Run Code Online (Sandbox Code Playgroud)

在照片页面中,loadstate方法是

protected async override void LoadState(Object navigationParameter, Dictionary<String, Object> pageState)
{
    if (pageState != null && pageState.ContainsKey("mruToken"))
    {
        object value = null;
        if (pageState.TryGetValue("mruToken", out value))
        {
            if (value != null)
            {
                mruToken = value.ToString();

                // Open the file via the token that you stored when adding this file into the MRU list.
                Windows.Storage.StorageFile file =
                    await Windows.Storage.AccessCache.StorageApplicationPermissions.MostRecentlyUsedList.GetFileAsync(mruToken);

                if (file != null)
                {
                    // Open …
Run Code Online (Sandbox Code Playgroud)

c# windows-store-apps

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

NHibernate Oracle Connection?

我是第一次为NHibernate设置Oracle连接.我已将Oracle.DataAccess.dll文件复制到我的bin文件夹中.无论我尝试什么,我都会遇到同样的错误:

Could not load type >NHibernate.Driver.OracleDataClientDriver. Possible cause: no assembly name specified. 
Run Code Online (Sandbox Code Playgroud)

我使用以下配置:

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
    <session-factory name="DefaultSessionFactory">
        <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
        <property name="dialect">NHibernate.Dialect.Oracle9Dialect</property>
        <property name="connection.driver_class">>NHibernate.Driver.OracleDataClientDriver</property>
        <property name="connection.connection_string">Data Source=DB;User ID=USERPassword=****;</property>       
        <property name="show_sql">true</property>
        <mapping assembly="NHibernateExample.DataAccess"/>
    </session-factory>
</hibernate-configuration>
Run Code Online (Sandbox Code Playgroud)

我之前只为SQL Server设置了NHibernate.我在这里错过了什么吗?

nhibernate

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