ListView/GridView에 포함 된 확인란의 상태를 수정하는 방법을 찾으려고합니다. 문제는 확인란이 별도의 DataGrid에있는 일부 레코드의 승인 상태에 의존한다는 것입니다. (예 : 승인 상태로 확인란을 사용 중입니다. True = 모두 승인 됨, False = 없음, null = 일부 승인 됨).ListView에 액세스하십시오.
DataContext는 엔터티이므로 처리 할 수있는 bool 값이 없습니다. 여기
<ListView x:Name="EmployeeNameListBox" Height="330" ItemsSource="{Binding}" SelectedValuePath="ID" SelectionChanged="EmployeeNameListBoxSelectionChanged">
<ListView.View>
<GridView AllowsColumnReorder="False" >
<GridViewColumn>
<GridViewColumn.CellTemplate>
<DataTemplate>
<CheckBox IsThreeState="True" Checked="EmployeeCheckBoxChecked" Unchecked="EmployeeCheckBoxChecked" x:Name="CheckBoxHero"/>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn>
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBlock>
<TextBlock.Text>
<MultiBinding StringFormat="{}{0}, {1} - {2}">
<Binding Path="LastName" />
<Binding Path="FirstName" />
<Binding Path="EmployeeNumber" />
</MultiBinding>
</TextBlock.Text>
</TextBlock>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>
내가 승인 상태 업데이트하기 위해 노력하고있어 어디 :
foreach (var employee in this.employees)
{
var records = from a in this.dailyActivities where a.Employee == employee select a;
var approvedRecords = from r in records where r.IsApproved == true select r;
if (approvedRecords.Count() == 0)
{
// None Approved checkbox state = false
}
else if (approvedRecords.Count() == records.Count())
{
// All Approved checkbox state = true
}
else
{
// Some Approved Set Checkbox state to null
}
}
Silverlight? WPF? 더 많은 태그를 추가하십시오 – Shyju
bool 값이 없으면 래퍼 객체를 생성하고 (아마도 viewmodel이라고 부르십시오) 대신 해당 클래스의 값에 바인딩 하시겠습니까? – Patrick
나는 궁극적으로 다른 부분 클래스에서 변수를 구현하는 것으로 갔다. 괜찮은 것 같아서, 나는이 컨트롤을 위해서만 필요한 부분 클래스를 피하려고 노력했다. – TheButlerDidIt