Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 4.0 将wpf datagrid中选定的单选按钮存储回远程数据库_C# 4.0 - Fatal编程技术网

C# 4.0 将wpf datagrid中选定的单选按钮存储回远程数据库

C# 4.0 将wpf datagrid中选定的单选按钮存储回远程数据库,c#-4.0,C# 4.0,问题一致强烈同意不一致强烈不同意 问题1 o 问题2 o 问题3 o o : : : o表示单选按钮 每个问题有4个单选按钮供选择 大家好 我在wpf应用程序中有一个datagrid作为上面的模板。我通过web方法从远程数据库检索所有问题 我对单选按钮使用以下xaml代码: <Grid.Resources> <DataTemplate x:Key="AgreeTemplate" > <RadioButton GroupName

问题一致强烈同意不一致强烈不同意

问题1 o
问题2 o
问题3 o o

: : :

o表示单选按钮
每个问题有4个单选按钮供选择

大家好

我在wpf应用程序中有一个datagrid作为上面的模板。我通过web方法从远程数据库检索所有问题

我对单选按钮使用以下xaml代码:

<Grid.Resources>
        <DataTemplate x:Key="AgreeTemplate" >
            <RadioButton GroupName="{Binding Path=question}" IsChecked="{Binding Agree, Mode=TwoWay}" Background="Purple" Height="30" />
        </DataTemplate>
        <DataTemplate x:Key="StronglyAgreeTemplate" >
            <RadioButton GroupName="{Binding Path=question}" IsChecked="{Binding StroglyAgree, Mode=TwoWay}" Background="Purple" Height="30" />
        </DataTemplate>
        <DataTemplate x:Key="DisagreeTemplate" >
            <RadioButton GroupName="{Binding Path=question}" IsChecked="{Binding Disagree, Mode=TwoWay}" Background="Purple" Height="30" />
        </DataTemplate>
        <DataTemplate x:Key="StronglyDisagreeTemplate" >
            <RadioButton GroupName="{Binding Path=question}" IsChecked="{Binding StronglyDisagree, Mode=TwoWay}" Background="Purple" Height="30" />
        </DataTemplate>
    </Grid.Resources>


<DataGrid Name="dataGridFeedback" AutoGenerateColumns="False" Canvas.Left="9" Canvas.Top="6" Height="613" Width="1523" FontFamily="Comic Sans MS" FontSize="20" CanUserAddRows="false" CanUserDeleteRows="False" GridLinesVisibility="All" HeadersVisibility="All" AlternatingRowBackground="BlanchedAlmond" RowDetailsVisibilityMode="Visible" CanUserResizeColumns="False" CanUserResizeRows="False" CanUserSortColumns="False">
                <DataGrid.Columns>
                    <DataGridTextColumn Header="Questions" Width="800" IsReadOnly="True" Binding="{Binding Path=question}" />
                    <DataGridTemplateColumn Header="Agree" Width="180" IsReadOnly="True" CellTemplate="{StaticResource AgreeTemplate}" />
                    <DataGridTemplateColumn Header="Strongly Agree" Width="180" IsReadOnly="True" CellTemplate="{StaticResource StronglyAgreeTemplate}" />
                    <DataGridTemplateColumn Header="Disagree" Width="180" IsReadOnly="True" CellTemplate="{StaticResource DisagreeTemplate}" />
                    <DataGridTemplateColumn Header="Strongly Disagree" Width="180" IsReadOnly="True" CellTemplate="{StaticResource StronglyDisagreeTemplate}" />
                </DataGrid.Columns>
            </DataGrid>

但是,所有单选按钮都与[GroupName=“{Binding Path=question}]”具有相同的组名,我如何知道用户是否选择了哪个答案

另一个问题是,用于定义所有这些单选按钮是否正确?wpf datagrid中是否有要使用的datagrid行属性

最后,如何将每个问题的选定单选按钮存储回远程数据库


请引导我。提前谢谢。

坏主意。如果每个问题有4个单选按钮,则只需检查一个单选按钮,因此答案上的信息量与整数值0..3相同。即使每个问题有256个按钮,也只需要1个字节存储在数据库中。所以,要存储问题的答案,您只需要一个整数值——一个“仅选中”单选按钮的数字,每个问题只需要一个按钮

而且,你的问题在意识形态上是非常错误的。您需要存储数据,而不是UI的状态。您需要有一个数据层及其与UI的绑定,就是这样。所有数据管理都应该使用数据层,而不是UI。数据更新后,应该会触发UI表示的更改

关于这一点,我建议您学习并分析以下体系结构模式的适用性(http://en.wikipedia.org/wiki/Architectural_pattern_(计算机科学)[^]):

注意这些架构的动机。如果你理解它,你将能够创造出更好的设计理念

MVVM — Model View View Model,
http://en.wikipedia.org/wiki/Model_View_ViewModel[^],

MVC — Model-View-Controller,
http://en.wikipedia.org/wiki/Model-view-controller[^]),

MVA — Model-View-Adapter,
http://en.wikipedia.org/wiki/Model–view–adapter[^],

MVP — Model-View-Presenter,
http://en.wikipedia.org/wiki/Model-view-presenter[^].