對 WPF 的世界相當陌生。過去,當視圖模型是 root 下的基本元素樹時,我已經將資料系結到視圖模型。
像這樣作業正常:
<TextBox x:Name="emailTxt" Grid.Row="6" Grid.Column="2" Text="{Binding Path=Email}">
我的電子郵件字串物件適當地系結并顯示在上面的文本框中。
但是,在使用 DataTemplate 時似乎沒有任何效果。我不確定它是否是未正確實作 DataTemplate 或與 TabControl 的組合。我已經嘗試根據其他來源(在模板上設定 DataType 等)稍微切換邏輯,但這并不好。
這是我目前所擁有的示例(對不起,模板很長,需要一個 3x40 單元格的大網格):此模板存在于 Windows.Resources 下。
<DataTemplate x:Key="commGridTemplate" DataType="{x:Type ViewModels:CommViewModel}">
<ScrollViewer Margin="10,30,60,30">
<Grid Name="CommGrid" IsSharedSizeScope="True"> <!-- DataContext="{Binding}" -->
<Grid.ColumnDefinitions>
<ColumnDefinition Name="RowBoxCol" Width="0.2*"></ColumnDefinition>
<ColumnDefinition Name="ChannelCol" Width="1*"></ColumnDefinition>
<ColumnDefinition Name="FrequencyCol" Width="1*"></ColumnDefinition>
<ColumnDefinition Name="DescriptionCol" Width="2*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<!--#region Row Definitions-->
<RowDefinition Height="20" SharedSizeGroup="CommRow"></RowDefinition> <!-- Header Row-->
<RowDefinition SharedSizeGroup="CommRow"></RowDefinition>
<RowDefinition SharedSizeGroup="CommRow"></RowDefinition>
<RowDefinition SharedSizeGroup="CommRow"></RowDefinition>
<RowDefinition SharedSizeGroup="CommRow"></RowDefinition>
<RowDefinition SharedSizeGroup="CommRow"></RowDefinition>
<RowDefinition SharedSizeGroup="CommRow"></RowDefinition>
<RowDefinition SharedSizeGroup="CommRow"></RowDefinition>
<RowDefinition SharedSizeGroup="CommRow"></RowDefinition>
<RowDefinition SharedSizeGroup="CommRow"></RowDefinition>
<RowDefinition SharedSizeGroup="CommRow"></RowDefinition>
<RowDefinition SharedSizeGroup="CommRow"></RowDefinition>
<RowDefinition SharedSizeGroup="CommRow"></RowDefinition>
<RowDefinition SharedSizeGroup="CommRow"></RowDefinition>
<RowDefinition SharedSizeGroup="CommRow"></RowDefinition>
<RowDefinition SharedSizeGroup="CommRow"></RowDefinition>
<RowDefinition SharedSizeGroup="CommRow"></RowDefinition>
<RowDefinition SharedSizeGroup="CommRow"></RowDefinition>
<RowDefinition SharedSizeGroup="CommRow"></RowDefinition>
<RowDefinition SharedSizeGroup="CommRow"></RowDefinition>
<RowDefinition SharedSizeGroup="CommRow"></RowDefinition>
<RowDefinition SharedSizeGroup="CommRow"></RowDefinition>
<RowDefinition SharedSizeGroup="CommRow"></RowDefinition>
<RowDefinition SharedSizeGroup="CommRow"></RowDefinition>
<RowDefinition SharedSizeGroup="CommRow"></RowDefinition>
<RowDefinition SharedSizeGroup="CommRow"></RowDefinition>
<RowDefinition SharedSizeGroup="CommRow"></RowDefinition>
<RowDefinition SharedSizeGroup="CommRow"></RowDefinition>
<RowDefinition SharedSizeGroup="CommRow"></RowDefinition>
<RowDefinition SharedSizeGroup="CommRow"></RowDefinition>
<RowDefinition SharedSizeGroup="CommRow"></RowDefinition>
<RowDefinition SharedSizeGroup="CommRow"></RowDefinition>
<RowDefinition SharedSizeGroup="CommRow"></RowDefinition>
<RowDefinition SharedSizeGroup="CommRow"></RowDefinition>
<RowDefinition SharedSizeGroup="CommRow"></RowDefinition>
<RowDefinition SharedSizeGroup="CommRow"></RowDefinition>
<RowDefinition SharedSizeGroup="CommRow"></RowDefinition>
<RowDefinition SharedSizeGroup="CommRow"></RowDefinition>
<RowDefinition SharedSizeGroup="CommRow"></RowDefinition>
<RowDefinition SharedSizeGroup="CommRow"></RowDefinition>
<!--#endregion Row Definitions-->
</Grid.RowDefinitions>
<!-- Header boxes-->
<TextBox Style="{StaticResource HeaderFiller}" Grid.Column="0" Grid.Row="0" IsReadOnly="True"></TextBox>
<TextBox Style="{StaticResource HeaderFiller}" Grid.Column="1" Grid.Row="0" HorizontalContentAlignment="Center" IsReadOnly="True" Text="Channel"></TextBox>
<TextBox Style="{StaticResource HeaderFiller}" Grid.Column="2" Grid.Row="0" HorizontalContentAlignment="Center" IsReadOnly="True" Text="Frequency"></TextBox>
<TextBox Style="{StaticResource HeaderFiller}" Grid.Column="3" Grid.Row="0" HorizontalContentAlignment="Center" IsReadOnly="True" Text="Description"></TextBox>
<!--#region Content boxes-->
<TextBox Style="{StaticResource HeaderFiller}" Grid.Column="0" Grid.Row="1" HorizontalContentAlignment="Center" IsReadOnly="True"></TextBox>
<TextBox x:Name="ExampleBox" Text="{Binding Path=ExampleText, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Grid.Column="1" Grid.Row="1" HorizontalContentAlignment="Center"></TextBox>
<TextBox Grid.Column="2" Grid.Row="1" HorizontalContentAlignment="Center"></TextBox>
<TextBox Grid.Column="3" Grid.Row="1" HorizontalContentAlignment="Center"></TextBox>
<TextBox Style="{StaticResource HeaderFiller}" Grid.Column="0" Grid.Row="2" HorizontalContentAlignment="Center" IsReadOnly="True"></TextBox>
<TextBox Grid.Column="1" Grid.Row="2" HorizontalContentAlignment="Center"></TextBox>
<TextBox Grid.Column="2" Grid.Row="2" HorizontalContentAlignment="Center"></TextBox>
<TextBox Grid.Column="3" Grid.Row="2" HorizontalContentAlignment="Center"></TextBox>
<TextBox Style="{StaticResource HeaderFiller}" Grid.Column="0" Grid.Row="3" HorizontalContentAlignment="Center" IsReadOnly="True"></TextBox>
<TextBox Grid.Column="1" Grid.Row="3" HorizontalContentAlignment="Center"></TextBox>
<TextBox Grid.Column="2" Grid.Row="3" HorizontalContentAlignment="Center"></TextBox>
<TextBox Grid.Column="3" Grid.Row="3" HorizontalContentAlignment="Center"></TextBox>
<TextBox Style="{StaticResource HeaderFiller}" Grid.Column="0" Grid.Row="4" HorizontalContentAlignment="Center" IsReadOnly="True"></TextBox>
<TextBox Grid.Column="1" Grid.Row="4" HorizontalContentAlignment="Center"></TextBox>
<TextBox Grid.Column="2" Grid.Row="4" HorizontalContentAlignment="Center"></TextBox>
<TextBox Grid.Column="3" Grid.Row="4" HorizontalContentAlignment="Center"></TextBox>
<TextBox Style="{StaticResource HeaderFiller}" Grid.Column="0" Grid.Row="5" HorizontalContentAlignment="Center" IsReadOnly="True"></TextBox>
<TextBox Grid.Column="1" Grid.Row="5" HorizontalContentAlignment="Center"></TextBox>
<TextBox Grid.Column="2" Grid.Row="5" HorizontalContentAlignment="Center"></TextBox>
<TextBox Grid.Column="3" Grid.Row="5" HorizontalContentAlignment="Center"></TextBox>
<TextBox Style="{StaticResource HeaderFiller}" Grid.Column="0" Grid.Row="6" HorizontalContentAlignment="Center" IsReadOnly="True"></TextBox>
<TextBox Grid.Column="1" Grid.Row="6" HorizontalContentAlignment="Center"></TextBox>
<TextBox Grid.Column="2" Grid.Row="6" HorizontalContentAlignment="Center"></TextBox>
<TextBox Grid.Column="3" Grid.Row="6" HorizontalContentAlignment="Center"></TextBox>
<TextBox Style="{StaticResource HeaderFiller}" Grid.Column="0" Grid.Row="7" HorizontalContentAlignment="Center" IsReadOnly="True"></TextBox>
<TextBox Grid.Column="1" Grid.Row="7" HorizontalContentAlignment="Center"></TextBox>
<TextBox Grid.Column="2" Grid.Row="7" HorizontalContentAlignment="Center"></TextBox>
<TextBox Grid.Column="3" Grid.Row="7" HorizontalContentAlignment="Center"></TextBox>
<TextBox Style="{StaticResource HeaderFiller}" Grid.Column="0" Grid.Row="8" HorizontalContentAlignment="Center" IsReadOnly="True"></TextBox>
<TextBox Grid.Column="1" Grid.Row="8" HorizontalContentAlignment="Center"></TextBox>
<TextBox Grid.Column="2" Grid.Row="8" HorizontalContentAlignment="Center"></TextBox>
<TextBox Grid.Column="3" Grid.Row="8" HorizontalContentAlignment="Center"></TextBox>
<TextBox Style="{StaticResource HeaderFiller}" Grid.Column="0" Grid.Row="9" HorizontalContentAlignment="Center" IsReadOnly="True"></TextBox>
<TextBox Grid.Column="1" Grid.Row="9" HorizontalContentAlignment="Center"></TextBox>
<TextBox Grid.Column="2" Grid.Row="9" HorizontalContentAlignment="Center"></TextBox>
<TextBox Grid.Column="3" Grid.Row="9" HorizontalContentAlignment="Center"></TextBox>
<TextBox Style="{StaticResource HeaderFiller}" Grid.Column="0" Grid.Row="10" HorizontalContentAlignment="Center" IsReadOnly="True"></TextBox>
<TextBox Grid.Column="1" Grid.Row="10" HorizontalContentAlignment="Center"></TextBox>
<TextBox Grid.Column="2" Grid.Row="10" HorizontalContentAlignment="Center"></TextBox>
<TextBox Grid.Column="3" Grid.Row="10" HorizontalContentAlignment="Center"></TextBox>
<TextBox Style="{StaticResource HeaderFiller}" Grid.Column="0" Grid.Row="11" HorizontalContentAlignment="Center" IsReadOnly="True"></TextBox>
<TextBox Grid.Column="1" Grid.Row="11" HorizontalContentAlignment="Center"></TextBox>
<TextBox Grid.Column="2" Grid.Row="11" HorizontalContentAlignment="Center"></TextBox>
<TextBox Grid.Column="3" Grid.Row="11" HorizontalContentAlignment="Center"></TextBox>
<TextBox Style="{StaticResource HeaderFiller}" Grid.Column="0" Grid.Row="12" HorizontalContentAlignment="Center" IsReadOnly="True"></TextBox>
<TextBox Grid.Column="1" Grid.Row="12" HorizontalContentAlignment="Center"></TextBox>
<TextBox Grid.Column="2" Grid.Row="12" HorizontalContentAlignment="Center"></TextBox>
<TextBox Grid.Column="3" Grid.Row="12" HorizontalContentAlignment="Center"></TextBox>
<TextBox Style="{StaticResource HeaderFiller}" Grid.Column="0" Grid.Row="13" HorizontalContentAlignment="Center" IsReadOnly="True"></TextBox>
<TextBox Grid.Column="1" Grid.Row="13" HorizontalContentAlignment="Center"></TextBox>
<TextBox Grid.Column="2" Grid.Row="13" HorizontalContentAlignment="Center"></TextBox>
<TextBox Grid.Column="3" Grid.Row="13" HorizontalContentAlignment="Center"></TextBox>
<TextBox Style="{StaticResource HeaderFiller}" Grid.Column="0" Grid.Row="14" HorizontalContentAlignment="Center" IsReadOnly="True"></TextBox>
<TextBox Grid.Column="1" Grid.Row="14" HorizontalContentAlignment="Center"></TextBox>
<TextBox Grid.Column="2" Grid.Row="14" HorizontalContentAlignment="Center"></TextBox>
<TextBox Grid.Column="3" Grid.Row="14" HorizontalContentAlignment="Center"></TextBox>
<TextBox Style="{StaticResource HeaderFiller}" Grid.Column="0" Grid.Row="15" HorizontalContentAlignment="Center" IsReadOnly="True"></TextBox>
<TextBox Grid.Column="1" Grid.Row="15" HorizontalContentAlignment="Center"></TextBox>
<TextBox Grid.Column="2" Grid.Row="15" HorizontalContentAlignment="Center"></TextBox>
<TextBox Grid.Column="3" Grid.Row="15" HorizontalContentAlignment="Center"></TextBox>
<TextBox Style="{StaticResource HeaderFiller}" Grid.Column="0" Grid.Row="16" HorizontalContentAlignment="Center" IsReadOnly="True"></TextBox>
<TextBox Grid.Column="1" Grid.Row="16" HorizontalContentAlignment="Center"></TextBox>
<TextBox Grid.Column="2" Grid.Row="16" HorizontalContentAlignment="Center"></TextBox>
<TextBox Grid.Column="3" Grid.Row="16" HorizontalContentAlignment="Center"></TextBox>
<TextBox Style="{StaticResource HeaderFiller}" Grid.Column="0" Grid.Row="17" HorizontalContentAlignment="Center" IsReadOnly="True"></TextBox>
<TextBox Grid.Column="1" Grid.Row="17" HorizontalContentAlignment="Center"></TextBox>
<TextBox Grid.Column="2" Grid.Row="17" HorizontalContentAlignment="Center"></TextBox>
<TextBox Grid.Column="3" Grid.Row="17" HorizontalContentAlignment="Center"></TextBox>
<TextBox Style="{StaticResource HeaderFiller}" Grid.Column="0" Grid.Row="18" HorizontalContentAlignment="Center" IsReadOnly="True"></TextBox>
<TextBox Grid.Column="1" Grid.Row="18" HorizontalContentAlignment="Center"></TextBox>
<TextBox Grid.Column="2" Grid.Row="18" HorizontalContentAlignment="Center"></TextBox>
<TextBox Grid.Column="3" Grid.Row="18" HorizontalContentAlignment="Center"></TextBox>
<TextBox Style="{StaticResource HeaderFiller}" Grid.Column="0" Grid.Row="19" HorizontalContentAlignment="Center" IsReadOnly="True"></TextBox>
<TextBox Grid.Column="1" Grid.Row="19" HorizontalContentAlignment="Center"></TextBox>
<TextBox Grid.Column="2" Grid.Row="19" HorizontalContentAlignment="Center"></TextBox>
<TextBox Grid.Column="3" Grid.Row="19" HorizontalContentAlignment="Center"></TextBox>
<TextBox Style="{StaticResource HeaderFiller}" Grid.Column="0" Grid.Row="20" HorizontalContentAlignment="Center" IsReadOnly="True"></TextBox>
<TextBox Grid.Column="1" Grid.Row="20" HorizontalContentAlignment="Center"></TextBox>
<TextBox Grid.Column="2" Grid.Row="20" HorizontalContentAlignment="Center"></TextBox>
<TextBox Grid.Column="3" Grid.Row="20" HorizontalContentAlignment="Center"></TextBox>
<TextBox Style="{StaticResource HeaderFiller}" Grid.Column="0" Grid.Row="21" HorizontalContentAlignment="Center" IsReadOnly="True"></TextBox>
<TextBox Grid.Column="1" Grid.Row="21" HorizontalContentAlignment="Center"></TextBox>
<TextBox Grid.Column="2" Grid.Row="21" HorizontalContentAlignment="Center"></TextBox>
<TextBox Grid.Column="3" Grid.Row="21" HorizontalContentAlignment="Center"></TextBox>
<TextBox Style="{StaticResource HeaderFiller}" Grid.Column="0" Grid.Row="22" HorizontalContentAlignment="Center" IsReadOnly="True"></TextBox>
<TextBox Grid.Column="1" Grid.Row="22" HorizontalContentAlignment="Center"></TextBox>
<TextBox Grid.Column="2" Grid.Row="22" HorizontalContentAlignment="Center"></TextBox>
<TextBox Grid.Column="3" Grid.Row="22" HorizontalContentAlignment="Center"></TextBox>
<TextBox Style="{StaticResource HeaderFiller}" Grid.Column="0" Grid.Row="23" HorizontalContentAlignment="Center" IsReadOnly="True"></TextBox>
<TextBox Grid.Column="1" Grid.Row="23" HorizontalContentAlignment="Center"></TextBox>
<TextBox Grid.Column="2" Grid.Row="23" HorizontalContentAlignment="Center"></TextBox>
<TextBox Grid.Column="3" Grid.Row="23" HorizontalContentAlignment="Center"></TextBox>
<TextBox Style="{StaticResource HeaderFiller}" Grid.Column="0" Grid.Row="24" HorizontalContentAlignment="Center" IsReadOnly="True"></TextBox>
<TextBox Grid.Column="1" Grid.Row="24" HorizontalContentAlignment="Center"></TextBox>
<TextBox Grid.Column="2" Grid.Row="24" HorizontalContentAlignment="Center"></TextBox>
<TextBox Grid.Column="3" Grid.Row="24" HorizontalContentAlignment="Center"></TextBox>
<TextBox Style="{StaticResource HeaderFiller}" Grid.Column="0" Grid.Row="25" HorizontalContentAlignment="Center" IsReadOnly="True"></TextBox>
<TextBox Grid.Column="1" Grid.Row="25" HorizontalContentAlignment="Center"></TextBox>
<TextBox Grid.Column="2" Grid.Row="25" HorizontalContentAlignment="Center"></TextBox>
<TextBox Grid.Column="3" Grid.Row="25" HorizontalContentAlignment="Center"></TextBox>
<TextBox Style="{StaticResource HeaderFiller}" Grid.Column="0" Grid.Row="26" HorizontalContentAlignment="Center" IsReadOnly="True"></TextBox>
<TextBox Grid.Column="1" Grid.Row="26" HorizontalContentAlignment="Center"></TextBox>
<TextBox Grid.Column="2" Grid.Row="26" HorizontalContentAlignment="Center"></TextBox>
<TextBox Grid.Column="3" Grid.Row="26" HorizontalContentAlignment="Center"></TextBox>
<TextBox Style="{StaticResource HeaderFiller}" Grid.Column="0" Grid.Row="27" HorizontalContentAlignment="Center" IsReadOnly="True"></TextBox>
<TextBox Grid.Column="1" Grid.Row="27" HorizontalContentAlignment="Center"></TextBox>
<TextBox Grid.Column="2" Grid.Row="27" HorizontalContentAlignment="Center"></TextBox>
<TextBox Grid.Column="3" Grid.Row="27" HorizontalContentAlignment="Center"></TextBox>
<TextBox Style="{StaticResource HeaderFiller}" Grid.Column="0" Grid.Row="28" HorizontalContentAlignment="Center" IsReadOnly="True"></TextBox>
<TextBox Grid.Column="1" Grid.Row="28" HorizontalContentAlignment="Center"></TextBox>
<TextBox Grid.Column="2" Grid.Row="28" HorizontalContentAlignment="Center"></TextBox>
<TextBox Grid.Column="3" Grid.Row="28" HorizontalContentAlignment="Center"></TextBox>
<TextBox Style="{StaticResource HeaderFiller}" Grid.Column="0" Grid.Row="29" HorizontalContentAlignment="Center" IsReadOnly="True"></TextBox>
<TextBox Grid.Column="1" Grid.Row="29" HorizontalContentAlignment="Center"></TextBox>
<TextBox Grid.Column="2" Grid.Row="29" HorizontalContentAlignment="Center"></TextBox>
<TextBox Grid.Column="3" Grid.Row="29" HorizontalContentAlignment="Center"></TextBox>
<TextBox Style="{StaticResource HeaderFiller}" Grid.Column="0" Grid.Row="30" HorizontalContentAlignment="Center" IsReadOnly="True"></TextBox>
<TextBox Grid.Column="1" Grid.Row="30" HorizontalContentAlignment="Center"></TextBox>
<TextBox Grid.Column="2" Grid.Row="30" HorizontalContentAlignment="Center"></TextBox>
<TextBox Grid.Column="3" Grid.Row="30" HorizontalContentAlignment="Center"></TextBox>
<TextBox Style="{StaticResource HeaderFiller}" Grid.Column="0" Grid.Row="31" HorizontalContentAlignment="Center" IsReadOnly="True"></TextBox>
<TextBox Grid.Column="1" Grid.Row="31" HorizontalContentAlignment="Center"></TextBox>
<TextBox Grid.Column="2" Grid.Row="31" HorizontalContentAlignment="Center"></TextBox>
<TextBox Grid.Column="3" Grid.Row="31" HorizontalContentAlignment="Center"></TextBox>
<TextBox Style="{StaticResource HeaderFiller}" Grid.Column="0" Grid.Row="32" HorizontalContentAlignment="Center" IsReadOnly="True"></TextBox>
<TextBox Grid.Column="1" Grid.Row="32" HorizontalContentAlignment="Center"></TextBox>
<TextBox Grid.Column="2" Grid.Row="32" HorizontalContentAlignment="Center"></TextBox>
<TextBox Grid.Column="3" Grid.Row="32" HorizontalContentAlignment="Center"></TextBox>
<TextBox Style="{StaticResource HeaderFiller}" Grid.Column="0" Grid.Row="33" HorizontalContentAlignment="Center" IsReadOnly="True"></TextBox>
<TextBox Grid.Column="1" Grid.Row="33" HorizontalContentAlignment="Center"></TextBox>
<TextBox Grid.Column="2" Grid.Row="33" HorizontalContentAlignment="Center"></TextBox>
<TextBox Grid.Column="3" Grid.Row="33" HorizontalContentAlignment="Center"></TextBox>
<TextBox Style="{StaticResource HeaderFiller}" Grid.Column="0" Grid.Row="34" HorizontalContentAlignment="Center" IsReadOnly="True"></TextBox>
<TextBox Grid.Column="1" Grid.Row="34" HorizontalContentAlignment="Center"></TextBox>
<TextBox Grid.Column="2" Grid.Row="34" HorizontalContentAlignment="Center"></TextBox>
<TextBox Grid.Column="3" Grid.Row="34" HorizontalContentAlignment="Center"></TextBox>
<TextBox Style="{StaticResource HeaderFiller}" Grid.Column="0" Grid.Row="35" HorizontalContentAlignment="Center" IsReadOnly="True"></TextBox>
<TextBox Grid.Column="1" Grid.Row="35" HorizontalContentAlignment="Center"></TextBox>
<TextBox Grid.Column="2" Grid.Row="35" HorizontalContentAlignment="Center"></TextBox>
<TextBox Grid.Column="3" Grid.Row="35" HorizontalContentAlignment="Center"></TextBox>
<TextBox Style="{StaticResource HeaderFiller}" Grid.Column="0" Grid.Row="36" HorizontalContentAlignment="Center" IsReadOnly="True"></TextBox>
<TextBox Grid.Column="1" Grid.Row="36" HorizontalContentAlignment="Center"></TextBox>
<TextBox Grid.Column="2" Grid.Row="36" HorizontalContentAlignment="Center"></TextBox>
<TextBox Grid.Column="3" Grid.Row="36" HorizontalContentAlignment="Center"></TextBox>
<TextBox Style="{StaticResource HeaderFiller}" Grid.Column="0" Grid.Row="37" HorizontalContentAlignment="Center" IsReadOnly="True"></TextBox>
<TextBox Grid.Column="1" Grid.Row="37" HorizontalContentAlignment="Center"></TextBox>
<TextBox Grid.Column="2" Grid.Row="37" HorizontalContentAlignment="Center"></TextBox>
<TextBox Grid.Column="3" Grid.Row="37" HorizontalContentAlignment="Center"></TextBox>
<TextBox Style="{StaticResource HeaderFiller}" Grid.Column="0" Grid.Row="38" HorizontalContentAlignment="Center" IsReadOnly="True"></TextBox>
<TextBox Grid.Column="1" Grid.Row="38" HorizontalContentAlignment="Center"></TextBox>
<TextBox Grid.Column="2" Grid.Row="38" HorizontalContentAlignment="Center"></TextBox>
<TextBox Grid.Column="3" Grid.Row="38" HorizontalContentAlignment="Center"></TextBox>
<TextBox Style="{StaticResource HeaderFiller}" Grid.Column="0" Grid.Row="39" HorizontalContentAlignment="Center" IsReadOnly="True"></TextBox>
<TextBox Grid.Column="1" Grid.Row="39" HorizontalContentAlignment="Center"></TextBox>
<TextBox Grid.Column="2" Grid.Row="39" HorizontalContentAlignment="Center"></TextBox>
<TextBox Grid.Column="3" Grid.Row="39" HorizontalContentAlignment="Center"></TextBox>
<TextBox Style="{StaticResource HeaderFiller}" Grid.Column="0" Grid.Row="40" HorizontalContentAlignment="Center" IsReadOnly="True"></TextBox>
<TextBox Grid.Column="1" Grid.Row="40" HorizontalContentAlignment="Center"></TextBox>
<TextBox Grid.Column="2" Grid.Row="40" HorizontalContentAlignment="Center"></TextBox>
<TextBox Grid.Column="3" Grid.Row="40" HorizontalContentAlignment="Center"></TextBox>
<!--#endregion-->
<ContentPresenter Content="{Binding}"/>
</Grid>
</ScrollViewer>
</DataTemplate>
<Grid Name="MainWindowGrid">
<GroupBox Style="{DynamicResource GroupBoxStyleNoHeader}" BorderThickness="1" Margin="10,25,10,10">
<Grid Name="GroupBoxGrid">
<Grid.RowDefinitions>
<RowDefinition x:Name="tabControlRow" Height="14*"></RowDefinition>
<RowDefinition x:Name="formButtonsRow" SharedSizeGroup="A"></RowDefinition>
</Grid.RowDefinitions>
<TabControl Name="CommTabs" Grid.Row="0" Margin="5,10,5,0" ContentTemplate="{StaticResource commGridTemplate}">
<TabItem Name="UHFTab" Header="UHF" Padding="15,2,15,2"/>
<TabItem Name="VHFTab" Header="VHF" Padding="15,2,15,2"/>
</TabControl>
現在我只是試圖讓 Grid 1,1 的 ExampleBox 系結到我的 CommViewModel 中存在的 ExampleText 物件。我在頂部為xmlns:ViewModels="clr-namespace:CommGUI.ViewModels"設定了一個命名空間,所以希望它可以訪問。我還在 MainWindow.xaml.cs 中將 ViewModel 設定為主視窗的 DataContext
ViewModels.CommViewModel viewModel = new ViewModels.CommViewModel(Convert.ToString(id));
this.DataContext = viewModel;
任何輸入將不勝感激。
**編輯:** 回應評論:我的網格是一個 3x40 的,由所有文本框組成。3 列,40 行。頂行由禁用的框組成,用作每列的標題。這些列是頻道、頻率和描述。我想每一行都將包含來自 CommViewModel 的系結物件的資料。
圖形用戶界面模擬
uj5u.com熱心網友回復:
我認為你這樣做是錯誤的。您可能需要的是創建一個包含您需要的 3 個部分的串列......頻率、描述和任何其他您想要的東西。通過 getter/setter 公開 List<>。
在您的表單中,創建一個 DataGrid 控制元件并將其專案源設定為 List<>,您就快完成了。
我創建了一個名為 Help1 的示例專案,因此請更改背景關系,或將粘貼復制到您的專案中以查看它的作業情況。下面的 MainWindow.xaml 顯示了資料網格的使用。
<Window
x:Class="Help1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:Help1"
mc:Ignorable="d"
Title="MainWindow" Height="450" Width="800">
<Grid>
<DataGrid ItemsSource="{Binding AllMyChannels}"
SelectedItem="{Binding JustTheOneChosenInTheGrid}"
AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Header="Channel" Width="70"
CanUserSort="True" Binding="{Binding Channel}" />
<DataGridTextColumn Header="Frequency" Width="100"
CanUserSort="True" Binding="{Binding Frequency}" />
<DataGridTextColumn Header="Description" Width="200"
CanUserSort="True" Binding="{Binding Description}" />
</DataGrid.Columns>
</DataGrid>
</Grid>
</Window>
現在,代碼隱藏通過 MainWindow.xaml.cs
using System;
using System.Collections.Generic;
using System.Windows;
namespace Help1
{
public partial class MainWindow
{
public MainWindow()
{
prepareChannels();
DataContext = this;
InitializeComponent();
}
public List<YourStuff> AllMyChannels { get; set; }
private void prepareChannels()
{
AllMyChannels = new List<YourStuff>();
AllMyChannels.Add(new YourStuff { Channel = "x1", Frequency = 98.7m, Description = "Some radio station" });
AllMyChannels.Add(new YourStuff { Channel = "y2", Frequency = 16.7m, Description = "Another Thing" });
AllMyChannels.Add(new YourStuff { Channel = "z9", Frequency = 2320.3m, Description = "who knows" });
// continue with all other frequency / items you have, or pull from some database somewhere.
}
// a public object reference to hold whatever the current selected item would be wihtin a datagrid
private YourStuff _justTheOneChosenInTheGrid = null;
public YourStuff JustTheOneChosenInTheGrid
{
get { return _justTheOneChosenInTheGrid; }
set { _justTheOneChosenInTheGrid = value;
// anything you might want to do with the record the user just changed to
MessageBox.Show($"Just selected Channel: {_justTheOneChosenInTheGrid.Channel}");
}
}
}
// define your own class listing the things you want to present to the user.
public class YourStuff
{
public string Channel { get; set; } = "";
public Decimal Frequency{ get; set; } = 0;
public string Description { get; set; } = "";
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/393101.html
