Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf 未设置DisplayMemberPath时,如何阻止隐式文本框样式在组合框中继承?_Wpf_Styles_Implicit Style - Fatal编程技术网

Wpf 未设置DisplayMemberPath时,如何阻止隐式文本框样式在组合框中继承?

Wpf 未设置DisplayMemberPath时,如何阻止隐式文本框样式在组合框中继承?,wpf,styles,implicit-style,Wpf,Styles,Implicit Style,我有两个组合框。一个绑定到枚举值列表,而另一个绑定到自定义类对象列表,并具有DisplayMemberPath属性集 绑定到枚举值的ComboBox应用隐式TextBlock样式,而使用DisplayMemberPath属性的ComboBox不应用 使用我可以验证两个组合框是否使用完全相同的控件集呈现(包含的),但是,组合框中的文本块不带DisplayMemberPath集,其边距为5,而带DisplayMemberPath集的则不带 <Grid.Resources> <

我有两个
组合框
。一个绑定到枚举值列表,而另一个绑定到自定义类对象列表,并具有
DisplayMemberPath
属性集

绑定到枚举值的
ComboBox
应用隐式
TextBlock
样式,而使用
DisplayMemberPath
属性的
ComboBox
不应用

使用我可以验证两个组合框是否使用完全相同的控件集呈现(包含
),但是,
组合框
中的
文本块
不带
DisplayMemberPath
集,其
边距
为5,而带
DisplayMemberPath
集的则不带

<Grid.Resources>
    <Style TargetType="{x:Type TextBlock}">
        <Setter Property="Margin" Value="5" />
    </Style>
</Grid.Resources>

<ComboBox Grid.Row="0" Grid.Column="1" 
          ItemsSource="{Binding EnumCollection}" 
          SelectedItem="{Binding SelectedEnum}" />

<ComboBox Grid.Column="1" Grid.Row="2" 
          ItemsSource="{Binding SomeCollection}" 
          SelectedItem="{Binding SelectedItem}"
          DisplayMemberPath="Name" />


为什么会这样?我能做些什么来阻止Enum
组合框继承隐式
TextBlock
样式?

我的假设是
DisplayMemberPath
创建了一个
DataTemplate
,并且样式不会在其范围内应用


尝试设置
DisplayMemberPath=“.”“
以使第一个
组合框使用包含
DataTemplate
,这将阻止应用隐式样式。

我的假设是
DisplayMemberPath
创建一个
DataTemplate
,样式将不应用于其范围内。@H.B.它确实。。。per“此属性是定义描述如何显示数据对象的默认模板的简单方法”。我知道我可以用
做一些令人讨厌的丑陋的解决方法,但我希望有一个更干净的解决方案。@KDiTraglia可以让两个
组合框
都继承隐式
文本块
样式,我想要相反的结果:两个都不继承它。我知道你会知道这个^很好用的答案,谢谢,这更像是我猜测的:)这没什么错:)我发现我的编程中有很大一部分都是经过教育的猜测。或者我称之为“受过教育的尝试和错误”。@Rachel:好吧,如果你对这个系统有深入的了解,猜测就会变成预测。在这里,我只是认为
displaymberpath
导致
{Binding}
所以
{Binding.}
应该有效。