小编Loo*_*cid的帖子

有没有办法分组或暂时禁用RichTextBox的撤消历史记录?

我目前正在与WPF中的RichTextBoxs中的表进行搏斗.在WPF中,表没有行和列,它们只有行,每行都有一定数量的单元格.当用户按下"添加列"按钮时,我的程序会向每行添加一个新单元格.

使用此方法的问题是在用户添加列之后,如果他们按下撤消,它会逐个删除每个单元格,显然不是用户期望的.

有没有人知道暂时禁用撤消队列添加操作的方法,或者将撤消操作或其他解决方案分组到我的问题的方法?

c# wpf richtextbox

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

WPF Designer DataTemplate.DataType不能是类型对象

我有一个树视图,我绑定到一些自定义视图模型.视图模型位于ObservableCollection继承中ViewModelBase并继承INotifyPropertyChanged.

它编译并运行正常,但在设计器中我得到错误:

"DataTemplate.DataType不能是类型对象

参数名称:值"

我的XAML是:

<TreeView Grid.Row="1" ItemsSource="{Binding ResultsTree}" SelectedItemChanged="TreeView_OnSelectedItemChanged">
<TreeView.Resources>
    <HierarchicalDataTemplate DataType="{x:Type local:TreeViewItemViewModel}" ItemsSource="{Binding Path=Children}">
        <StackPanel Orientation="Horizontal">
            <CheckBox IsChecked="{Binding IsChecked}"/>
            <TextBlock Text="{Binding Text}"/>
        </StackPanel>
    </HierarchicalDataTemplate>


    <DataTemplate DataType="{x:Type local:CorrectionAndFreqViewModel}">
        <StackPanel Orientation="Horizontal" ToolTip="{Binding AmbientText}">
            <Rectangle Width="20" Height="5" Fill="{Binding LineColor, Converter={StaticResource ColorToSolidColorBrushValueConverter}}"></Rectangle>
            <CheckBox IsChecked="{Binding IsChecked}"/>
            <TextBlock Text="{Binding Text}"/>
        </StackPanel>
    </DataTemplate>
</TreeView.Resources>
</TreeView>
Run Code Online (Sandbox Code Playgroud)

属性窗口也说它是一个Object,但我不明白为什么:

在此输入图像描述

有任何想法吗?

c# wpf designer

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

用于Windows开发的C++ QT与C#.NET

我目前正在进行一些分析瘫痪,决定哪个更适合我使用Qt框架的C++,或者使用.NET框架来开发我目前正在设计的中小型项目的C#.

我在两种语言方面都有一点经验,在C++中稍微多一些,但可能仍然被认为是新手.

我读过的所有信息都已经过时了(至少有几年之久)了,并且想知道是否有任何更新会以这种或那种方式摆脱优势,或者它是否真的只是一个偏好问题.

QT似乎支持我的特定需求稍微好一些,但是在C++中工作的额外难度可能会使我回到正方形1.

我的要求相当简单,我需要丰富的文本支持,数据库连接,导出到各种文件类型的能力以及具有相当动态的GUI.

任何人都有他们希望分享的个人经历或建议吗?

.net c# c++ windows qt

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

.NET 4.6之前的Buffer.MemoryCopy的最佳替代方案

我正在尝试将某些.NET 4.6代码降级到.NET 4.5.

这是我正在使用的代码块:

fixed (byte* destination = dataBytes)
{
    Buffer.MemoryCopy(data, destination, dataLength, dataLength);
}
Run Code Online (Sandbox Code Playgroud)

databyte*类型所以我不知道是否Buffer.BlockCopy()是一个合理的替代,因为它接受数组.

有任何想法吗?

.net c#

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

类型错误:“类型”对象不支持项目分配

尝试向 Python 3 中的字典添加一些内容(目的是创建用户名和密码)。但是我遇到了一个错误,告诉我该类型不支持项目分配。我是编程的菜鸟,所以请耐心等待。我只是假设在 python 中的字典中添加键和值不允许使用输入变量。

userlist = dict


def main():
    add_user()
    print(userlist)


def add_user():
    global new_user
    global new_password
    print('Please indicate your desired username')
    new_user = str(input('User: ')).lower
    print('Please indicate your desired password')
    new_password = str(input('Password: '))
    print('Please re-enter your password')
    password_addcheck = str(input('Password:'))
    if password_addcheck == new_password:
        print('Thank you, you are now successfully registered')
        userlist[new_user] = new_password
    else:
        print('Password does not match, please repeat process')
        add_user()


main()
Run Code Online (Sandbox Code Playgroud)

python-3.x

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

空条件运算符对委托和常规对象的功能是否相同?

参考

我目前正在处理一些线程敏感代码。

在我的代码中,我有一个由两个不同线程操纵的对象的列表。一个线程可以将对象添加到此列表,而另一个线程可以将其设置为null。

在上面的参考中,它特别提到了代表:

myDelegate?.Invoke()
Run Code Online (Sandbox Code Playgroud)

等效于:

var handler = myDelegate;
if (handler != null)
{
    handler(…);
}
Run Code Online (Sandbox Code Playgroud)

我的问题是,这种行为与a相同List<>吗?例如:

是:

var myList = new List<object>();    
myList?.Add(new object());
Run Code Online (Sandbox Code Playgroud)

保证等同于:

var myList = new List<object>();

var tempList = myList;
if (tempList != null)
{
    tempList.Add(new object());
}
Run Code Online (Sandbox Code Playgroud)


编辑:

请注意,两者之间(代理的工作方式)有所不同:

var myList = new List<int>();
var tempList = myList;
if (tempList != null)
{
    myList = null; // another thread sets myList to null here
    tempList.Add(1); // doesn't crash
}
Run Code Online (Sandbox Code Playgroud)

和 …

.net c# delegates null-conditional-operator

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