Dan*_*n H 15 .net wpf binding .net-4.0 wpfdatagrid
我有绑定到DataGrid的对象.我创建了一个绑定到对象的Is Default属性的单选按钮列.
当应用程序启动时,正确的项目显示为默认值,但是绑定随后不会更新.我想要的行为是用户检查一个单选框并使该对象成为默认值.
<DataGrid CanUserAddRows="False" AutoGenerateColumns="False" Name="TEst" >
<DataGrid.Columns >
<DataGridTextColumn Header="Value" Binding="{Binding Path=Name, Mode=OneTime}"/>
<DataGridTemplateColumn Header="Is Default">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<RadioButton GroupName="Test" IsChecked="{Binding IsDefault}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
private class Test : INotifyPropertyChanged
{
public string Name
{
get;
set;
}
bool isDefult;
public bool IsDefault
{
get
{
return isDefult;
}
set
{
isDefult = value;
}
}
public event PropertyChangedEventHandler PropertyChanged;
}
public MainWindow()
{
this.InitializeComponent();
Test[] ya = new Test[] { new Test { Name = "1", IsDefault = false }, new Test { Name = "2", IsDefault = false }, new Test { Name = "3", IsDefault = true } };
this.TEst.ItemsSource = ya;
}
Run Code Online (Sandbox Code Playgroud)
我整个下午一直在把头发拉出来.任何帮助都会被爱.
vor*_*olf 16
这很奇怪,但你所要做的就是改变RadioButton的绑定:
<RadioButton GroupName="Test" IsChecked="{Binding IsDefault, UpdateSourceTrigger=PropertyChanged}" />
Run Code Online (Sandbox Code Playgroud)
据我所知,默认值是LostFocus,但在DataGrid中有一些焦点问题.我不知道问题发生的原因.
另一个问题是:PropertyChanged在IsDefault属性的setter中引发事件.现在一切正常,没有通知,但如果你添加更多的xaml代码,将很难找出为什么UI没有更新.
| 归档时间: |
|
| 查看次数: |
10775 次 |
| 最近记录: |