小编Joh*_*ohn的帖子

DataTrigger没有触发

我有以下xaml:

    <DockPanel>
    <DockPanel>
        <CheckBox IsChecked="{Binding Path=Test}" />
        <CheckBox IsChecked="{Binding Path=Test}" />
    </DockPanel>
    <DockPanel DockPanel.Dock="Left" Width="10" Background="Blue">
        <DockPanel.Style>
            <Style>
                <Style.Triggers>
                    <DataTrigger Binding="{Binding Path=Test}" Value="True">
                        <Setter Property="DockPanel.Background" Value="Yellow" />
                    </DataTrigger>
                </Style.Triggers>
            </Style>
        </DockPanel.Style>
    </DockPanel>
</DockPanel>
Run Code Online (Sandbox Code Playgroud)

现在 - 2个复选框正确链接 - 检查一个将检查另一个 - 但数据触发器根本没有触发.

我究竟做错了什么?

.net wpf xaml datatrigger

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

自定义WPF控件依赖项属性未绑定到外部DP

我正在努力使这个简短易读.我正在创建一个在代码隐藏中具有DP定义(RandomNumber)的自定义控件.此DP的值是由我的控件中的按钮触发的单击事件设置的.

以下是相关代码:

public partial class Tester 
{
    public int RandomNumber
    {
        get { return (int)GetValue(RandomNumberProperty); }
        set { SetValue(RandomNumberProperty, value); }
    }

    private Random rnd = new Random();
    private void Button_Click(object sender, RoutedEventArgs e)
    {
        RandomNumber = rnd.Next();
    }
Run Code Online (Sandbox Code Playgroud)

click事件有效并且值已设置,我可以确认它已更改.我遇到的问题是当我在我的应用程序中使用此控件时,我尝试将"RandomNumber"绑定到我的View Model上的另一个DP,绑定永远不会更新:

 <DockPanel>
    <TextBlock Text="{Binding Path=Numeric}" 
               DockPanel.Dock="Top"
               Height="25"/>
    <TestProject:Tester RandomNumber="{Binding Path=Numeric}" 
                             DockPanel.Dock="Top"
                             Height="25"
                             x:Name="TestControl"/>

</DockPanel>
Run Code Online (Sandbox Code Playgroud)

在上面的示例中,我有一个带有名为Numeric的DP的视图模型,我可以确认该值实际上从未被绑定更新.

我无法弄清楚我做错了什么.在此先感谢您的帮助!

.net c# data-binding wpf xaml

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

标签 统计

.net ×2

wpf ×2

xaml ×2

c# ×1

data-binding ×1

datatrigger ×1