标签: wpftoolkit

如何在WPF Toolkit DataGrid上对DataGridTemplateColumn进行排序?

我有一个带有一个DataGridTemplateColumn的WPF Toolkit DataGrid.我在网格属性中指定了我希望所有列都可以排序,但DataGridTemplateColumn不允许它.所有其他列都允许排序.我甚至尝试过明确地将CanUserSort设置为true,但没有运气.甚至可以对模板列进行排序吗?我提供了一个适用于所有列的自定义排序器,但标题不允许排序点击.

<Controls:DataGrid ItemsSource="{Binding Events}" AutoGenerateColumns="False" 
                               CanUserSortColumns="True" 
                               CanUserReorderColumns="False" 
                               Sorting="DataGrid_Sorting" 
                               x:Name="EventsGrid">
                <Controls:DataGrid.Columns>
                    <Controls:DataGridTemplateColumn Header="Type" Width="42" CanUserResize="False">
                        <Controls:DataGridTemplateColumn.CellTemplate>
                            <DataTemplate>
                                <Image Source="{Binding EventTypeImage, Mode=OneWay}" HorizontalAlignment="Center" Width="16"/>
                            </DataTemplate>
                        </Controls:DataGridTemplateColumn.CellTemplate>
                    </Controls:DataGridTemplateColumn>
                    <Controls:DataGridTextColumn Header="Source" 
                                           Binding="{Binding Source, Mode=OneWay}" />
                    <Controls:DataGridTextColumn Header="Details" MinWidth="175" 
                                           Binding="{Binding Details, Mode=OneWay}" />
                    <Controls:DataGridTextColumn Header="Timestamp" MinWidth="175"  
                                           Binding="{Binding Timestamp, Mode=OneWay}" 
                                           IsReadOnly="True"/>
                </Controls:DataGrid.Columns>
            </Controls:DataGrid>
Run Code Online (Sandbox Code Playgroud)

sorting wpf wpftoolkit datagridtemplatecolumn

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

标签内容上的WPF StringFormat

我想格式化我的字符串绑定,因为Amount is Xwhere X是绑定到标签的属性.

我见过很多例子,但以下内容不起作用:

<Label Content="{Binding Path=MaxLevelofInvestment, 
   StringFormat='Amount is {0}'}" />
Run Code Online (Sandbox Code Playgroud)

我也试过这些组合:

StringFormat=Amount is {0}
StringFormat='Amount is {}{0}'
StringFormat='Amount is \{0\}'
Run Code Online (Sandbox Code Playgroud)

我甚至尝试将绑定属性的数据类型更改为int,stringdouble.似乎没什么用.这是一个非常常见的用例,但似乎不受支持.

wpf binding wpftoolkit wpf-controls wpfdatagrid

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

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

绑定datagrid列可见性MVVM

.Net 3.5

我知道列不继承datacontext并通过阅读其他帖子我认为这将工作:

Visibility="{Binding RelativeSource={x:Static RelativeSource.Self},
                     Path=(FrameworkElement.DataContext).IsColumnNameVisible,
                     Converter={StaticResource boolToVisConverter}}"
Run Code Online (Sandbox Code Playgroud)

但是当然它没有..输出窗口没有抱怨,似乎我找到的资源但是viewmodel属性是更新的调用.

这是整个DG:

<tk:DataGrid                                        
            VirtualizingStackPanel.IsVirtualizing="False"                                        
            Grid.Column="0"
            AlternationCount="2"
            AreRowDetailsFrozen="True"
            AutoGenerateColumns="False"
            Background="Transparent"
            BorderThickness="0"
            CanUserAddRows="False"
            CanUserReorderColumns="True"
            CanUserResizeRows="False"
            GridLinesVisibility="None"
            ItemsSource="{Binding Employees}"
            SelectionMode="Single"
            ColumnHeaderStyle="{StaticResource columnHeaderStyle}"
            RowHeaderStyle="{StaticResource rowHeaderStyle}"
            CellStyle="{StaticResource cellStyle}"
            RowStyle="{StaticResource rowStyle}" 
            ContextMenu="{StaticResource columnHeaderContextMenu}">
    <tk:DataGrid.Resources>
        <ContextMenu x:Key="columnHeaderContextMenu" ItemsSource="{Binding ColumnHeaderContextMenuItems}" />
        <Style TargetType="{x:Type ScrollBar}">
            <Setter Property="Background" Value="Transparent"/>
        </Style>                                    
        <Style TargetType="{x:Type tk:DataGridColumnHeader}">
            <Setter Property="Background" Value="Transparent"/>
        </Style>
    </tk:DataGrid.Resources>
    <tk:DataGrid.Triggers>
        <EventTrigger RoutedEvent="tk:DataGridRow.MouseDoubleClick">
            <EventTrigger.Actions>
                <BeginStoryboard Storyboard="{StaticResource showDetailGrid}"/>
            </EventTrigger.Actions>
        </EventTrigger>
    </tk:DataGrid.Triggers>
    <tk:DataGrid.Columns>
        <tk:DataGridTextColumn IsReadOnly="True" Header="test" Binding="{Binding Name, Mode=OneWay}" Visibility="{Binding RelativeSource={x:Static RelativeSource.Self}, Path=(FrameworkElement.DataContext).IsColumnNameVisible, Converter={StaticResource boolToVisConverter}}" …
Run Code Online (Sandbox Code Playgroud)

c# wpf xaml wpftoolkit .net-3.5

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

WPF(MVVM):从Viewmodel关闭视图?

有人遇到过使用MVVM在视图模型中关闭视图的聪明方法吗?

也许有一种方法可以使用绑定来通知视图(窗口)关闭?

我真的很感激任何人的任何输入.

基本上我有一个绑定到loginViewModel的loginView,在viewmodel中(使用命令绑定)我测试登录是否成功,如果是,我基本上加载一个新的View(主视图)并附加其datacontext. ..

但我仍然显示loginView - 所以我需要发信号卸载..

我也希望有一个通用的解决方案,因为我确信在其他情况下我需要做这种事情

有任何想法吗?

wpf mvvm wpftoolkit

46
推荐指数
5
解决办法
5万
查看次数

更改WPF DatePicker的字符串格式

我需要在WPF Toolkit DatePicker中更改DatePickerTextBox的字符串格式,以便为分隔符使用连字符而不是斜杠.

有没有办法覆盖此默认文化或显示字符串格式?

01-01-2010
Run Code Online (Sandbox Code Playgroud)

wpf datepicker wpftoolkit

43
推荐指数
5
解决办法
8万
查看次数

WPF的Windows 7主题?

是否有任何方法可以使WPF应用看起来像在Windows 7上运行,即使它在XP上运行?我正在寻找一些我可以粘贴的主题.我知道Codeplex上的主题项目(http://www.codeplex.com/wpfthemes),但它缺乏支持DataGrid,这是我批判性的需要.我想也许Windows 7主题可能只是一个简单的端口,或者已存在于某个文件中.您所拥有的任何信息(即使是坏消息)都将非常感激.

更新

使用@Lars Truijens的想法,我能够获得主要控件的Windows 7外观,但遗憾的是它不能用于DataGrid我需要的WPF Toolkit 控件.

DataGrid Aero主题看起来像这样

Windows XP外观DataGrid

DataGrid 应该是这样的

Windows 7外观DataGrid

所以,如果有人有任何想法,我仍然在寻找这个问题的解决方案.也许有人为Aero主题构建了一个扩展,涵盖了WPF工具包控件?同样,非常感谢您提供的任何信息.

更新2 - 问题解决了!

要使Aero主题与WPF Toolkit控件一起使用,您只需添加第二个Aero字典,因此您的App.xaml现在应该如下所示.

<Application.Resources>
    ...
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary
                Source="/PresentationFramework.Aero;component/themes/Aero.NormalColor.xaml" />
            <ResourceDictionary
                Source="pack://application:,,,/WPFToolkit;component/Themes/Aero.NormalColor.xaml" />
            ...
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</Application.Resources>
Run Code Online (Sandbox Code Playgroud)

另外,我建议你在DataGrid控件中关闭网格线(因为它们看起来很糟糕):

<DataGrid GridLinesVisibility="None" ...>
Run Code Online (Sandbox Code Playgroud)

.net windows wpf themes wpftoolkit

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

绑定到ObservableCollection <T>时如何删除DataGrid的空行?

我在这里坚持这个:

ObservableCollection<Employee> list = new ObservableCollection<Employee>();
dgEmployees.ItemsSource = list;
Run Code Online (Sandbox Code Playgroud)

当您调试列表变量时,它是空的(list.Count = 0),但是然后我将它绑定到DataGrid(WPFToolkit),它向我显示一个空行.

在即时窗口中,对于dgEmployees.Items,它显示:

dgEmployees.Items[0]
{NewItemPlaceholder}
Run Code Online (Sandbox Code Playgroud)

dgEmployees.Items[0].GetType()
{Name = "NamedObject" FullName = "MS.Internal.NamedObject"}
[System.RuntimeType]: {Name = "NamedObject" FullName = "MS.Internal.NamedObject"}
Run Code Online (Sandbox Code Playgroud)

这似乎发生在我将这个Datagrid放入TabControl后,但我不确定它与它有什么关系.

有谁知道如何删除这个空白行?

datagrid observablecollection wpftoolkit

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

如何在所有列标题上启用文本换行?

我想在我的DataGrid的所有列标题上启用文本换行,而不禁用其他默认标题功能,例如列调整大小,排序方向指示符等.

有没有办法做到这一点?

wpf datagrid wpftoolkit word-wrap

33
推荐指数
5
解决办法
3万
查看次数

WPF工具包日历需要两次单击才能获得焦点

我正在使用作为WPF工具包一部分的WPF日历.

我在控件上有两个不同的日历.当我尝试从一个日历然后从第二个日历中选择日期时,我必须两次点击第二个日历以使其选择日期.

有没有其他人有这个问题并知道解决方案?

.net wpf calendar wpftoolkit

29
推荐指数
2
解决办法
4263
查看次数