小编Lai*_*zor的帖子

在两个DataGrids之间共享1个滚动条

我正在制作一个有2个数据网格的wpf应用程序,我想让它们一起滚动.我知道DataGridView类有一个滚动事件,您可以使用它对其他网格进行必要的更改,但DataGrids没有Scroll事件.我必须使用DataGrid.

这个例子很好,但不是WPF,而是使用DataGridView而不是DataGrid.使用一个滚动条来控制两个DataGridView

拥有它的最佳方法是什么,以便一个数据网格的滚动条也将在WPF和DataGrids中移动数据网格的滚动条?

c# wpf xaml datagrid scroll

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

绑定未找到带有引用的源(MenuItem)

我收到错误消息:

System.Windows.Data错误:4:找不到参考'ElementName = gridProductViewDataGrid'的绑定源。BindingExpression:Path = SelectedItem; DataItem = null; 目标元素是'MenuItem'(Name =''); 目标属性为“ IsEnabled”(类型为“布尔”)

在Visual Studio的“输出”窗口中,我的代码没有执行应做的事情。

该添加工作正常,因为它不需要禁用,但不禁用删除。

<DataGrid AutoGenerateColumns="False" IsReadOnly="False" CanUserAddRows="False" CanUserDeleteRows="False" EnableRowVirtualization="True" ItemsSource="{Binding Items, Mode=TwoWay}" x:Name="gridViewProductDataGrid" RowDetailsVisibilityMode="VisibleWhenSelected" >
        <DataGrid.ContextMenu>
            <ContextMenu>
                <MenuItem Header="{Binding LabelStrings.AddProductLabel, Source={StaticResource ResourceWrapper}}" Click="Add_Product_MenuItem_Click"/>
                <MenuItem Header="{Binding LabelStrings.RemoveProductLabel, Source={StaticResource ResourceWrapper}}" Click="Remove_Product_MenuItem_Click" IsEnabled="{Binding ElementName=gridViewProductDataGrid, Path=SelectedItem, UpdateSourceTrigger=PropertyChanged, Converter={StaticResource ObjectToBooleanConverter}}"/>
                </MenuItem>
            </ContextMenu>
        </DataGrid.ContextMenu>
Run Code Online (Sandbox Code Playgroud)

如果没有对象,转换器将简单地返回true,如果存在则返回false。我试过将此代码移入和移出网格,以及按不同顺序移动绑定的各个部分。当我运行代码并将其置于断点时,它从未进入过布尔转换器的代码。为什么在网格内部时看不到网格?

c# wpf xaml

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

提取字符串JavaScript的非常具体的部分

我有一个字符串,例如"Hello_World_1_x.txt",我想在最后一个下划线之后和.txt之前取任何东西..txt将始终存在于下划线中,但可能存在许多下划线.我使用.split()来删除最后4个字符,但我只想在最后一个下划线后才会删除.到目前为止,我的正则表达式只给了我第一个下划线后的最新信息.

javascript regex string

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

当扩展器关闭时缩小窗口大小

嘿家伙我有3个柱扩展器,当你打开它们并调整窗口大小时,它们会适当地拉伸以适应窗口.当你是一个近距离扩展器时,我希望它在扩展器打开时按窗口的宽度缩小窗口.它目前将膨胀机关闭至20像素,但开放式膨胀机将更大(它伸展以填充空白区域).

码:

<UserControls:ExpanderWindow x:Class="Lainezor.Windows.ExpanderWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:xt="clr-namespace:Microsoft.Windows.Controls;assembly=WPFToolkit.Extended"
    xmlns:pg="clr-namespace:Microsoft.Windows.Controls.PropertyGrid;assembly=WPFToolkit.Extended"
    xmlns:MyUserControls="clr-namespace:Lainezor.UserControls.ExpanderControls"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    SizeToContent="WidthAndHeight" Background="AliceBlue" 
    ResizeMode="CanResize" WindowStartupLocation="Manual" Loaded="Window_Loaded">
<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition>
            <ColumnDefinition.Style>
                <Style TargetType="ColumnDefinition">
                    <Setter Property="Width" Value="20" />
                    <Setter Property="MinWidth" Value="20" />
                    <Style.Triggers>
                        <DataTrigger Binding="{Binding IsExpanded, ElementName=Expander1}" Value="True">
                            <Setter Property="Width" Value="20*" />
                        </DataTrigger>
                    </Style.Triggers>
                </Style>
            </ColumnDefinition.Style>
        </ColumnDefinition>
        <ColumnDefinition Width="2"/>
        <ColumnDefinition>
            <ColumnDefinition.Style>
                <Style TargetType="ColumnDefinition">
                    <Setter Property="Width" Value="20" />
                    <Setter Property="MinWidth" Value="20" />
                    <Style.Triggers>
                        <DataTrigger Binding="{Binding IsExpanded, ElementName=Expander2}" Value="True">
                            <Setter Property="Width" Value="20*" />
                        </DataTrigger>
                    </Style.Triggers>
                </Style>
            </ColumnDefinition.Style>
        </ColumnDefinition>
        <ColumnDefinition Width="2"/>
        <ColumnDefinition>
            <ColumnDefinition.Style>
                <Style TargetType="ColumnDefinition"> …
Run Code Online (Sandbox Code Playgroud)

c# wpf xaml expander window-resize

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

列表替换所有以前的元素

我有一个Person类型列表.当我创建人员列表时,它会将当前列表元素的信息替换为当前列表元素的信息.我已经读过这是静态类变量的问题,但我的属性都不是静态的.

class Person{
private string _name;
private string _address;

public string Name{
get{ return _name;}
set { _name = value;}

public string Address{
get{ return _address;}
set { _address = value;}
}
}
Run Code Online (Sandbox Code Playgroud)

我从文件中读取人员并将其存储在字符串数组中.我介入以确保阵列是正确的.它是.

这是奇怪的地方:

string[] personArray;
Person tempPerson = new Person(); 
List<Person> people = new List<Person>();
foreach (string line in lines)//lines are the people from file, it is correct
{
personArray = line.Split(',');
if (personArray.Length == 2)
{
tempPerson.Name = personArray[0];
tempPerson.Address = personArray[1];
people.Add(tempPerson);
}
}
Run Code Online (Sandbox Code Playgroud)

我逐步完成代码,第一个人被正确添加,第二个人被添加到人物中,他们都有第二个人的信息.在add语句之后,一切都正常.

c# class list

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

标签 统计

c# ×4

wpf ×3

xaml ×3

class ×1

datagrid ×1

expander ×1

javascript ×1

list ×1

regex ×1

scroll ×1

string ×1

window-resize ×1