我尝试使用带有DependencyProperty绑定的自定义控件来处理DataGrid中的列。一切正在进行中,我选择了一排。在DataGrid中使用自定义UserControl和属性绑定的C#WPF
我的自定义控件ShiftControl.xaml:
<UserControl x:Class="xRoster.UserControls.ShiftControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:xRoster.UserControls">
<TextBlock x:Name="tbShift"
Text="{Binding Path=Shift}"
TextWrapping="Wrap"
VerticalAlignment="Center"
HorizontalAlignment="Center"/>
</UserControl>
我的代码隐藏的ShiftControl.xaml.cs:
public partial class ShiftControl : UserControl
{
public ShiftControl()
{
InitializeComponent();
tbShift.DataContext = this;
}
public static readonly DependencyProperty ShiftProperty =
DependencyProperty.Register(
"Shift", typeof(string), typeof(ShiftControl));
public string Shift
{
get { return (string)GetValue(ShiftProperty); }
set { SetValue(ShiftProperty, value); }
}
}
,我使用ShiftControl在DataGrid window.xaml代码:
<UserControl.Resources>
<DataTemplate x:Key="day1Column">
<uc:ShiftControl Shift="{Binding Day1Shift.Display}"/>
</DataTemplate>
</UserControl.Resources>
<DataGrid ItemsSource="{Binding Employees}"
AutoGenerateColumns="False"
HeadersVisibility="Column"
RowHeight="50">
<DataGrid.Columns>
<DataGridTemplateColumn Header="Montag"
HeaderStyle="{StaticResource columnHeaderStyle}"
CellTemplate="{StaticResource day1Column}"
CellEditingTemplate="{StaticResource day1Column}"/>
</DataGrid.Columns>
</DataGrid>
正如我所说的,绑定了我的ShiftControl只有当行的地方是对工作没有选择花边。
任何想法? 在此先感谢
这似乎只是与TextBlocks问题。使用相同绑定的标签,按钮或文本框没有问题。 –
请参阅http://stackoverflow.com/questions/9035878/implicit-styles-in-application-resources-vs-window-resources。如果没有一个好的[mcve]是不可能的,但根据你的评论,你的问题似乎可能是该问题的重复。 –