gpt4 book ai didi

c# - 将 xaml 模板绑定(bind)转换为代码隐藏

转载 作者:太空宇宙 更新时间:2023-11-03 10:56:14 26 4
gpt4 key购买 nike

我有一个从数据库填充的网格控件。此外,在代码中,我向数据表添加了一个 checkeditsettings 列。我在 xaml 中创建了一个模板,但无法在 C# 中进行转换。在我下面的代码中,

XAML 代码:

  <dxg:GridColumn FieldName="Select"  Fixed="Right"  UnboundType="Boolean">
<dxg:GridColumn.EditSettings>
<dxe:CheckEditSettings />
</dxg:GridColumn.EditSettings>
<dxg:GridColumn.CellTemplate>
<DataTemplate>
<local:MyCheckEdit
IsChecked="False"
IsEnabled='True'
Checked="MyCheckEdit_Checked"
EnabledChecked="/Images/mark.png"
EnabledUnchecked="/Images/markk.png"
DisabledUnchecked="/Images/marken.png" >
</local:MyCheckEdit>
</DataTemplate>
</dxg:GridColumn.CellTemplate>
</dxg:GridColumn>

到目前为止我已经尝试过:

        GridColumn colselect = new GridColumn();
ComboBoxEditSettings c = new ComboBoxEditSettings();
colselect.EditSettings = c;
DataTemplate template = new DataTemplate();
template.VisualTree = new FrameworkElementFactory(typeof(MyCheckEdit));
template.VisualTree.SetBinding(MyCheckEdit.ContentProperty, new Binding("...?"));
colselect.CellTemplate = template;

我真的在这里。

最佳答案

DataTemplate 保存在 xaml 的 Resources 部分,为其命名 (x:Key) 并从代码中引用它-在你需要的时候落后:

<dxg:DataGrid x:name="myGrid" >
<dxg:DataGrid.Resources>
<DataTemplate x:Key="MyCellTemplate" >
<local:MyCheckEdit IsChecked="False"
IsEnabled='True'
Checked="MyCheckEdit_Checked"
EnabledChecked="/Images/mark.png"
EnabledUnchecked="/Images/markk.png"
DisabledUnchecked="/Images/marken.png" />
</DataTemplate>
</dxg:DataGrid.Resources>

...

</dxg:DataGrid>

然后,在您的代码隐藏中:

GridColumn colselect = new GridColumn();
colselect.EditSettings = new ComboBoxEditSettings();
colselect.CellTemplate = myGrid.Resources["MyCellTemplate"] as DataTemplate;

关于c# - 将 xaml 模板绑定(bind)转换为代码隐藏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19402994/

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