gpt4 book ai didi

.net - DataGrid 创建 RadioButton 列

转载 作者:行者123 更新时间:2023-12-03 20:29:10 25 4
gpt4 key购买 nike

我有绑定(bind)到 DataGrid 的对象。我创建了一个绑定(bind)到对象的 Is Default 属性的单选按钮列。

当应用程序启动时,正确的项目显示为默认值,但是绑定(bind)永远不会更新。我想要的行为是让用户选中一个单选框并将该对象变为默认值。

        <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;
}

我整个下午都在拉头发。任何帮助都会受到喜爱。

最佳答案

这很奇怪,但您所要做的就是更改 RadioButton 的绑定(bind):

<RadioButton GroupName="Test" IsChecked="{Binding IsDefault, UpdateSourceTrigger=PropertyChanged}" />

据我所知,默认值是LostFocus,但是DataGrid里面的focus存在一些问题。我不知道为什么会出现问题。

还有一个问题:提出 PropertyChanged IsDefault 的 setter 中的事件属性(property)。现在一切正常,无需通知,但如果您添加更多 xaml 代码,将很难找出 UI 未更新的原因。

关于.net - DataGrid 创建 RadioButton 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5422820/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com