第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

如何在雙擊時(shí)將可觀察的集合數(shù)據(jù)網(wǎng)格與文本框綁定?

如何在雙擊時(shí)將可觀察的集合數(shù)據(jù)網(wǎng)格與文本框綁定?

C#
慕絲7291255 2022-10-15 15:26:05
我正在使用 MVVM 學(xué)習(xí) WPF。我有一個(gè)包含一些信息的 DataGrid。數(shù)據(jù)網(wǎng)格的來源是一個(gè)可觀察的集合。當(dāng)我雙擊數(shù)據(jù)網(wǎng)格中的特定行時(shí),我需要將信息加載到文本框中。我希望將行的特定單元格加載到文本框中。我遵循的步驟聲明了一個(gè)數(shù)據(jù)網(wǎng)格窗口.xaml:     <DataGrid x:Name="datagrid1" SelectedItem="{Binding GetRowData}" AutoGenerateColumns="True" CanUserAddRows="False"Height="90" Width="358" Margin="-210,-200,-90,-187" HorizontalAlignment="Left">                        <DataGrid.Style>                        <Style TargetType="{x:Type DataGrid}">                        <Setter Property="ItemsSource" Value="{Binding modelclasswithcombobox}"/>                        <Style.Triggers>                        <DataTrigger Binding="{Binding isfront}" Value="True">                        <Setter Property="ItemsSource" Value="{Binding ModelClasstabwithdate}"/>                       </DataTrigger>                     </Style.Triggers>                   </Style>           </DataGrid.Style>    </DataGrid>聲明一個(gè)文本框在文本框中,我將選定的數(shù)據(jù)網(wǎng)格項(xiàng)目綁定為路徑。 <TextBox x:Name="txtboxAuditId" IsEnabled="{Binding IsEnabled}"   Width="108" Height="19.277" HorizontalAlignment="Left"  Margin="-20,14,708.962,0" VerticalAlignment="Top" Text="{Binding  ElementName=datagrid1, Path =  GetRowData, Mode=TwoWay,  ValidatesOnDataErrors=True,NotifyOnValidationError=True,  UpdateSourceTrigger=PropertyChanged, ValidatesOnExceptions=True}" />在 viewmodel 中用 INotifyPropertyChanged 聲明了一個(gè)屬性來獲取改變的數(shù)據(jù)。private string _gettherow;public string GetRowData{    get { return this._gettherow; }    set    {        if (this._gettherow != value)        {            this._gettherow = value;            OnPropertyChanged("GetRowData");        }     }}現(xiàn)在的問題是如何在我單擊數(shù)據(jù)網(wǎng)格行時(shí)提供命令,以便填充我的文本框。我通常將 Icommand 界面用于按鈕單擊事件,無論在這里我是否需要應(yīng)用相同的或其他任何東西。
查看完整描述

2 回答

?
呼啦一陣風(fēng)

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超6個(gè)贊

在這種情況下,您的 GetRowData 不應(yīng)該是字符串。它應(yīng)該是您的自定義類型,例如您的 ObservableCollection。例如,如果下面是綁定到 DataGrid 的 ObservableCollection,


ObservableCollection<ModelClass> collection = new ObservableCollection<ModelClass>();

那么你的 GetRowData 應(yīng)該是這樣的。


private ModelClass _gettherow;

public ModelClass GetRowData

{

    get { return this._gettherow; }

    set

    {

        if (this._gettherow != value)

        {

            this._gettherow = value;

            OnPropertyChanged("GetRowData");

        }

     }

}

然后像這樣將它綁定到 TextBox (CustomType.PropertyName)


<TextBox Text="{Binding GetRowData.Name}"/>


查看完整回答
反對 回復(fù) 2022-10-15
?
精慕HU

TA貢獻(xiàn)1845條經(jīng)驗(yàn) 獲得超8個(gè)贊

因此,如果我理解了這個(gè)問題,您想TextBox在用戶輸入您的DataGrid Cellor時(shí)更新一個(gè)獨(dú)立的Row。


如果是這種情況,那么你想使用DataTriggers


大意是什么


        <TextBox>

            <TextBox.Style>

                <Style TargetType="TextBox">

                    <Style.Triggers>

                        <DataTrigger Binding="{Binding ElementName=yourDataGrid, Path=BeginningEdit}" Value="True">

                            <Setter Property="Text" Value="{Binding YourTextProperty}" />

                        </DataTrigger>

                    </Style.Triggers>

                </Style>

            </TextBox.Style>

        </TextBox>

你可以在這里閱讀更多關(guān)于它的信息https://www.wpf-tutorial.com/styles/trigger-datatrigger-event-trigger/


查看完整回答
反對 回復(fù) 2022-10-15
  • 2 回答
  • 0 關(guān)注
  • 121 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號