我已經用盡了想法,試圖根據公共屬性(在WPF/XAML/MVVM Light應用程序中)中設置的值摺疊DataGridTextcolumn。如何使用綁定摺疊DataGridTextColumns
XAML中的提取物是:
<StackPanel>
<DataGrid AutoGenerateColumns="False" Name="PipelinesGrid"
HorizontalAlignment="Left"
ItemsSource="{Binding Pipelines}"
SelectedItem="{Binding SelectedPipelineView, Mode=TwoWay}"
VerticalAlignment="Top" Margin="10,16,0,0"
SelectionUnit="FullRow" SelectionMode="Single"
CanUserAddRows="False">
<DataGrid.Columns>
<DataGridTextColumn
Binding="{Binding DailyCapacity, Mode=TwoWay}"
Header="Capacity(d)"
Visibility="{Binding Source={x:Reference PipelinesGrid},
Path=DataContext.ShowCapacities}"/>
這裏是可見性設置是很多,我已經嘗試過(這個人給一個cycylical依賴錯誤)之一。
視圖模型代碼的相關提取物是:
private string _showCapacities;
public string ShowCapacities
{
get { return _showCapacities; }
set { _showCapacities = value; RaisePropertyChanged("ShowCapacities"); }
}
private void OnProjectSelected(ProjectSelectedArgs obj)
{
_selectedProject = obj.SelectedProject;
if (_selectedProject != null)
{
Pipelines = new ObservableCollection<PipelineView>();
foreach (var projectPipeline in _selectedProject.ProjectPipelines)
{
Pipelines.Add(new PipelineView(projectPipeline));
}
switch (_selectedProject.ProjectCategory.ProjectCategory1)
{
case "Upstream":
ShowCapacities = "Collapsed";
break;
case "Mid-Stream":
ShowCapacities = "Visible";
break;
}
}
IsEditing = false;
}
我一直在這篇文章(http://stackoverflow.com/questions/8847661/datagridtextcolumn-visibility-binding),我需要通過通知使用Source和Xreference。謝謝你的幫助。
感謝您的回答菲爾,但我只注意到它今天。我在回覆之前以不同的方式解決了問題。 <數據網格的AutoGenerateColumns = 「假」 名稱= 「PipelinesGrid」 的HorizontalAlignment = 「左」 的ItemsSource = 「{結合管道}」 的SelectedItem = 「{結合SelectedPipelineView,模式=雙向}」 VerticalAlignment = 「頂部」 保證金=「10 ,16,0,0「SelectionUnit =」FullRow「SelectionMode =」Single「CanUserAddRows =」False「 –
我會嘗試再次回覆!感謝Phil - 我使用了兩個DataGrid,並將它們的可見性綁定到屬性中保存的兩個相反的值,並將它們應用於OnProjectSelected中的switch語句中。 –