似乎我继承的WPF应用程序有一个DataGrid
1...26
如果文本框中包含文本,我想最终将背景颜色设置为黄色。
单击Datagrid中的某些行
时会出现文本似乎一切都是基于这个“绑定”
1...69
我有一个文本框,我为其添加了一个名称
<DataGrid x:Name="dataGrid" ItemsSource="{Binding AllTroubleCalls}" SelectedIndex="{Binding SelectedIndex}"
显示当我在一个方法中时,我可以“测试”它并且它可以正常工作
{Binding ... }
但是,我不明白为什么我无法处理从Datagrid中点击的任何行改变的数据,然后数据在xaml页面上的许多文本框等中“神奇地”出现。
我认为“Binding”正在处理这个问题,但它也是MVVM双向绑定的吗?
我已经尝试将这么多断点压缩到这么多方法中,但我似乎无法让它们向我展示如何在行点击时改变数据
答案 0 :(得分:1)
在没有细节的情况下,这个问题还有点太多了。但是,我至少可以回答我认为你的目标。如果文本框中包含文字,则最简单的方法是将文本框设为黄色:
<TextBox >
<TextBox.Style>
<Style TargetType="TextBox">
<Setter Property="Background" Value="Yellow"></Setter>
<Style.Triggers>
<Trigger Property="Text" Value="">
<Setter Property="Background" Value="White"></Setter>
</Trigger>
</Style.Triggers>
</Style>
</TextBox.Style>
</TextBox>
至于弄清楚数据如何变化...... TextBox中显示的文本绑定到ThreatText。这意味着只有在某个类(您的viewmodel)中更改名为ThreatText的属性时,文本才会更改。您是否尝试在ThreatText属性的setter上设置断点?您也可以在getter上设置断点。当您单击文本框/行时,WPF会更新UI中的文本,这意味着由于ThreatText中的某些更改,它会重新评估绑定。这也意味着它会击中吸气剂......你可以检查堆栈跟踪是否可以看到发生了什么。